[
{
"id": 3401,
"league": {
"id": 4140,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
}
]
我在数组中有很多这样的对象。如何以一种这样的方式对数组进行排序/格式化,从而得到一个新的数组/字典,该对象的对象是"id"
中按"league"
的{{1}}值排序的对象。现在,我有一个普通的数组,但是我希望通过键值对某些东西进行排序,例如4140:[来自具有联赛ID 4140的数组中的对象]或按4140
排序的2d数组。我是否需要使用[[array with all objects containing league with value "id" of 4140], [array with objects with league value id 4141], etc..]
或类似的东西?我对Java语言还很陌生。
这就是我期望得到的代码。
map
答案 0 :(得分:2)
您需要遍历它,并根据您的联赛ID将它们分组为一个新对象。
示例:
const output = {};
const input = [
{
"id": 1,
"league": {
"id": 7,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
},
{
"id": 2,
"league": {
"id": 7,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
},
{
"id": 3,
"league": {
"id": 8,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
}
];
input.forEach(x => {
if (!output[x.league.id]) {
output[x.league.id] = [];
}
output[x.league.id].push(x);
});
答案 1 :(得分:0)
要对对象数组进行排序,应使用数组的sort()函数
var yourArray = [{
"id": 3401,
"league": {
"id": 4140,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
},
{
"id": 3405,
"league": {
"id": 4145,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
},
{
"id": 3402,
"league": {
"id": 4143,
"image_url": "pngurl.png",
"modified_at": "2019-02-19T15:29:07Z",
"name": "League Cup",
"slug": "league-slug",
"url": null
}
}
]
yourArray.sort((a, b) => {
if (a.league.id < b.league.id) {
return -1;
}
if (a.league.id > b.league.id) {
return 1;
}
return 0;
})
//Output will be sorted array
console.log(yourArray);
答案 2 :(得分:0)
使用['10', '10', '5']
['20', '10', '10']
并将map
应用于每个sort
object.tournaments