Javascript 将数组排序为新的二维数组 [ { “id”:3401, “联盟”:{ “id”:4140, “image_url”:“pngurl.png”, “修改时间”:“2019-02-19T15:29:07Z”, “名称”:“联赛杯”, “鼻涕虫”:“联盟鼻涕虫”, “url”:空 } } ]

Javascript 将数组排序为新的二维数组 [ { “id”:3401, “联盟”:{ “id”:4140, “image_url”:“pngurl.png”, “修改时间”:“2019-02-19T15:29:07Z”, “名称”:“联赛杯”, “鼻涕虫”:“联盟鼻涕虫”, “url”:空 } } ],javascript,arrays,typescript,Javascript,Arrays,Typescript,我在数组中有很多这样的对象。我如何对数组进行排序/格式化,这样我就得到了一个新的数组/字典,其中的对象按“id”的值排序,在“league”中,示例是4140。现在我有了一个普通数组,但我想要一些按键值排序的东西,比如4140:[来自联盟id为4140的数组的对象]或2d数组排序[[包含联盟id为4140的所有对象的数组],[包含联盟id为4141的对象的数组],等等]。我需要使用map或类似的东西吗?我对Javascript非常陌生 下面是我希望在代码中得到的内容 //这就是我最终想要得到的。

我在数组中有很多这样的对象。我如何对数组进行排序/格式化,这样我就得到了一个新的数组/字典,其中的对象按
“id”
的值排序,在
“league”
中,示例是
4140
。现在我有了一个普通数组,但我想要一些按键值排序的东西,比如4140:[来自联盟id为4140的数组的对象]或2d数组排序
[[包含联盟id为4140的所有对象的数组],[包含联盟id为4141的对象的数组],等等]
。我需要使用
map
或类似的东西吗?我对Javascript非常陌生

下面是我希望在代码中得到的内容

//这就是我最终想要得到的。。。
[
{
“联赛”:“联赛杯”,
“锦标赛”:[
{
“id”:3402,
“联盟”:{
“id”:4141,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
},
{
“id”:3403,
“联盟”:{
“id”:4141,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
}
]
},
{
“联赛”:“联赛杯2”,
“锦标赛”:[
{
“id”:3401,
“联盟”:{
“id”:4145,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯2”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
},
{
“id”:3405,
“联盟”:{
“id”:4145,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯2”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
}
]
}
]

您需要循环浏览它,并根据您的联盟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);
});

要对对象数组进行排序,应使用数组的sort()函数

var-yourray=[{
“id”:3401,
“联盟”:{
“id”:4140,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
},
{
“id”:3405,
“联盟”:{
“id”:4145,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
},
{
“id”:3402,
“联盟”:{
“id”:4143,
“image_url”:“pngurl.png”,
“修改时间”:“2019-02-19T15:29:07Z”,
“名称”:“联赛杯”,
“鼻涕虫”:“联盟鼻涕虫”,
“url”:空
}
}
]
yourArray.sort((a,b)=>{
if(a.league.idb.league.id){
返回1;
}
返回0;
})
//输出将按数组排序

log(数组)使用
映射
并对每个
对象应用
排序
。锦标赛

const排序=(arr)=>
方位图((obj)=>({
…obj,
tournaments:obj.tournaments.sort((a,b)=>a.id-b.id),
}));
常数数据=[
{
联赛:“联赛杯”,
比赛:[
{
身份证号码:3403,
联盟:{
身份证号码:4141,
图片地址:“pngurl.png”,
修改位置:“2019-02-19T15:29:07Z”,
名称:“联赛杯”,
鼻涕虫:“联盟鼻涕虫”,
url:null,
},
},
{
id:3401,
联盟:{
身份证号码:4141,
图片地址:“pngurl.png”,
修改位置:“2019-02-19T15:29:07Z”,
名称:“联赛杯”,
鼻涕虫:“联盟鼻涕虫”,
url:null,
},
},
],
},
{
联赛:“联赛杯2”,
比赛:[
{
身份证号码:3405,
联盟:{
身份证号码:4145,
图片地址:“pngurl.png”,
修改位置:“2019-02-19T15:29:07Z”,
名称:“联赛杯2”,
鼻涕虫:“联盟鼻涕虫”,
url:null,
},
},
{
id:3401,
联盟:{
身份证号码:4145,
图片地址:“pngurl.png”,
修改位置:“2019-02-19T15:29:07Z”,
名称:“联赛杯2”,
鼻涕虫:“联盟鼻涕虫”,
url:null,
},
},
],
},
];

console.log(已排序(数据))请再添加一些数据、想要的结果和您的尝试。您可以根据需要添加一部分代码吗?我们需要更多的信息:)