我有一个像这样的清单:


  serie_chart = [{“名称”:“ Bodega”,“数据”:[1484617495839,23]},{
  “ name”:“ Otro”,“ data”:[1484617703695,30]},{“ name”:“ Camara1”,
  “ data”:[1484622282856,22]},{“ name”:“ Camara1”,“ data”:[
  1484622286969,24]},{“名称”:“ Camara1”,“数据”:[1484622289794,26
  ]}];


我想使用重复的名称像这样合并此数据并将数据存储到列表中


  [
      {
      “ name”:“ Bodega”,
      “数据”:[
      1484617495839,
      23
      ]
      },
      {
      “ name”:“ Otro”,
      “数据”:[
      [
      1484617703695,
      30
      ],
      [
      1484617998559,
      33
      ]
      ]
      },
      {
      “ name”:“ Camara1”,
      “数据”:[
      [
      1484622282856,
      22
      ],
      [
      1484622286969,
      24
      ],
      [
      1484622289794,
      26
      ],
      [
      1484677105646,
      55
      ]
      ]
      }
      ]


我创建此代码,

 var temp = {};
 for (var i=0; i<serie_chart.length; i++) {
     temp[serie_chart[i].name] =
     temp[serie_chart[i].name] === undefined ?
     serie_chart[i].data : [temp[serie_chart[i].name],serie_chart[i].data];
 }
   serie_chart = [];
      for (var key in temp) {
          serie_chart.push({'name': key, 'data': temp[key]})
      }


但我不知道我错过了什么,因为当我尝试推送数据时,他在数据内部创建了很多列表。感谢您的帮助

最佳答案

尝试这个:

var temp = {};
for (var i=0; i<serie_chart.length; i++) {
    if(!temp[serie_chart[i].name]) {
     temp[serie_chart[i].name]=[];
    }
    temp[serie_chart[i].name].push(serie_chart[i].data);
}
serie_chart = [];
for (var key in temp) {
    serie_chart.push({'name': key, 'data': temp[key]})
}

关于javascript - 如何合并列表Javascript中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41757341/

10-10 17:52
查看更多