如何在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 官宣新年祝福语简短