如何合并列表Javascript中的数据
我有一张这样的清单: serie_图表=[{“名称”:“Bodega”,“数据”:[1484617495839,23]}{ “名称”:“Otro”,“数据”:[1484617703695,30]},{“名称”:“Camara1”, “数据”:[148462222856,22]},{“名称”:“Camara1”,“数据”:[ 1484622286969,24]},{“姓名”:“卡马拉”,“数据”:[1484622289794,26] ] }]; 我想使用重复的名称合并这些数据,并将数据存储到一个列表中 [ { “名称”:“酒庄”, “数据”:[ 1484617495839, 23 ] }, { “名称”:“Otro”, “数据”:[ [ 1484617703695, 30 ], [ 1484617998559, 33 ] ] }, { “名称”:“Camara1”, “数据”:[ [ 1484622282856, 22 ], [ 1484622286969, 24 ], [ 1484622289794, 26 ], [ 1484677105646, 55 ] ] } ] 我创建了这个代码如何合并列表Javascript中的数据,javascript,arrays,list,Javascript,Arrays,List,我有一张这样的清单: serie_图表=[{“名称”:“Bodega”,“数据”:[1484617495839,23]}{ “名称”:“Otro”,“数据”:[1484617703695,30]},{“名称”:“Camara1”, “数据”:[148462222856,22]},{“名称”:“Camara1”,“数据”:[ 1484622286969,24]},{“姓名”:“卡马拉”,“数据”:[1484622289794,26] ] }]; 我想使用重复的名称合并这些数据,并将数据存储到一个列
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={};
对于(var i=0;i尝试以下方法:
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]})
}
var-temp={};
对于(var i=0;i这是Muhridin Ibragimov的答案,性能得到了增强,我们在数组上迭代一次:
var temp = {};
var result = [];
for (var i=0; i<serie_chart.length; i++) {
var chart = serie_chart[i]
var name = chart.name
if(!temp[name]) {
temp[name]=[];
result.push({'name': name, 'data': temp[name]})
}
temp[name].push(chart.data);
}
var-temp={};
var结果=[];
对于(var i=0;i