如何在JavaScript中根据嵌套数组的长度对对象数组进行排序
假设我们有一个对象数组,其中包含嵌套的对象数组,如下所示:
const arr = [
{ name: "Cat1", elements : [
{ name: name, id: id } ]
},
{ name: "Cat2", elements : [
{ name: name, id: id },
{ name: name, id: id },
{ name: name, id: id } ]
},
{ name: "Cat3", elements : [
{ name: name, id: id },
{ name: name, id: id } ]
}
];我们需要编写一个包含一个这样的数组的JavaScript函数。该函数应对此对象数组进行排序。
在“元素”数组属性中包含更多对象的对象应排名更高。
因此,对数组进行排序后应如下所示:
const output = [
{ name: "Cat2", elements : [
{ name: name, id: id },
{ name: name, id: id },
{ name: name, id: id } ]
},
{ name: "Cat3", elements : [
{ name: name, id: id },
{ name: name, id: id } ]
},
{ name: "Cat1", elements : [
{ name: name, id: id } ]
}
];示例
为此的代码将是-
const arr = [
{ "name": "Cat1", elements : [
{ "name": "name", "id": "id" } ]
},
{ "name": "Cat2", elements : [
{ "name": "name", "id": "id" },
{ "name": "name", "id": "id" },
{ "name": "name", "id": "id" } ]
},
{ "name": "Cat3", elements : [
{ "name": "name", "id": "id" },
{ "name": "name", "id": "id" } ]
}
];
const sorter = (a, b) => {
if(a.elements.length > b.elements.length) {
return −1;
} else {
return 1;
}
}
arr.sort(sorter);
console.log(JSON.stringify(arr, undefined, 4));输出结果
控制台中的输出将是-
[
{
name": "Cat2",
"elements": [
{
"name": "name",
"id": "id"
},
{
"name": "name",
"id": "id"
},
{
"name": "name",
"id": "id"
}
]
},
{
"name": "Cat3",
"elements": [
{
"name": "name",
"id": "id"
},
{
"name": "name",
"id": "id"
}
]
},
{
"name": "Cat1",
"elements": [
{
"name": "name",
"id": "id"
}
]
}
]热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志