[英]How To sort an array of nested objects in javascript
我有这样的数组
var array = [{
order: 3,
sub - array: [{
order: 2
},{
order: 1
}]
},{
order: 2,
sub - array: [{
order: 2
},{
order: 1
}]
}];
现在,我想按属性order
对完整集合进行order
,因此外部数组和内部数组都应基于属性顺序进行排序。
最终输出应如下所示。
var array = [{
order: 2,
sub - array: [{
order: 1
},{
order: 2
}]
},{
order: 3,
sub - array: [{
order: 1
},{
order: 2
}]
}];
var propertySort = function(a, b){
return a.order > b.order ? 1 : (a.order < b.order ? -1 : 0);
}
var reorder = function(arr){
var l = arr.length;
while (l--){
if (arr[l]['sub-array']){
reorder(arr[l]['sub-array']);
}
}
arr.sort(propertySort);
};
reorder(arr);
console.log(arr);
这应该对任意数量的嵌套级别重新排列数组。
使用Array.prototype.sort
并调用它在array
并随后中的每个元素array
与适当的比较功能。 这样的事情应该起作用:
array.sort(function (e1, e2) {
return (e1.order - e2.order);
});
array.forEach(function(e) {
e["sub-array"].sort(function (e1, e2) {
return (e1.order - e2.order);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.