我目前有一个数组对象(不确定这是否是准确的名称),它由嵌套的键值对组成。我希望能够通过嵌套对象中的值对其进行排序。
例如:
var ObjArray = [
{ id = 1,
info = {
number = 4,
name = "foo"
}
},
{ id = 4,
info = {
number = 12,
name = "bar"
}
},
{ id = 9,
info = {
number = 2,
name = "fizz"
}
}
];
理想情况下,我可以根据'number'属性对此对象进行排序,并且生成的数组对象将具有按信息中的数字值排序的子对象。
我发现了一个类似的问题(Sorting an object of nested objects in javascript (maybe using lodash?)),但未考虑其他级别的嵌套对象。
答案 0 :(得分:3)
所需的排序功能是
ObjArray.sort((a,b) => a.info.number - b.info.number);
这将按升序排序
降序:
ObjArray.sort((a,b) => b.info.number - a.info.number);
var ObjArray = [{
id: 1,
info: {
number: 4,
name: "foo"
}
},
{
id: 4,
info: {
number: 12,
name: "bar"
}
},
{
id: 9,
info: {
number: 2,
name: "fizz"
}
}
];
ObjArray.sort((a,b) => a.info.number - b.info.number);
console.log(ObjArray);