javascript - 在 JavaScript 中组合两个多维数组中的元素

标签 javascript arrays object multidimensional-array

我在 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/

相关文章:

javascript - `Array.from({length: 5}, (v, i) => i)` 是如何工作的?

javascript - 使用动态键对嵌套的对象数组进行排序

java - 将测试文件中的现有字符串与带有参数的新输入者对象进行比较时,始终返回 false

java - 将对象分配给字符串

javascript - 5的倍数的表达式

javascript - $ 不是用 jQuery 定义的

c++ - 异或和移位数组中的位

Java数组值设置

javascript - 如何在 Javascript 中将嵌套对象合并到它们的父对象中?

javascript - 当我们调用 web api 函数时,javascript 会创建执行上下文吗?