我在 JavaScript 中有以下两个数组:
"total":[[1370923200000,"66"],[1371009600000,"42"],[1371096000000,"23"]]
"successful":[[1370923200000,"5"],[1371096000000,"2"],[1371182400000,"0"]]
我想将它们组合成一个数组/对象,如下所示:
{date:1370923200000, total:"66", successful:"5"},
{date:1371009600000, total:"42"},
{date:1371096000000, total:"23", successful:"2"},
{date:1371182400000, successful:"0"}
我尝试了多种不同的解决方案,循环遍历两个数组,但我似乎无法找出一个优雅的解决方案。
最佳答案
这里有:
var total = [[1370923200000, "66"],[1371009600000, "42"],[1371096000000, "23"]];
var successful = [[1370923200000, "5"],[1371096000000, "2"],[1371182400000, "0"]];
var combined = {};
for(var i=0; i<total.length; i++){
combined[total[i][0]] = {date: total[i][0], total: total[i][1]};
}
for(var i=0; i<successful.length; i++){
if(successful[i][0] in combined){
combined[successful[i][0]].successful = successful[i][1];
}
else{
combined[successful[i][0]] = {
date: successful[i][0], successful: successful[i][1]
};
}
}
var result = [];
for(var key in combined){
result.push(combined[key]);
}
alert(result.toSource());
还有一个工作 fiddle http://jsfiddle.net/eRjeZ/
关于javascript - 在 JavaScript 中组合两个多维数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17596339/