gpt4 book ai didi

Javascript合并2个数组并对相同的键值求和

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:34 25 4
gpt4 key购买 nike

我有 2 个数组:

    var array1 = [[5,10],[6,10],[7,10],[8,10],[9,10]];
var array2 = [[1,10],[2,10],[3,10],[4,10],[5,40],[6,40]];

想得到1个合并后的数组,对应键的总和;

    var array1 = [[1,10],[2,10],[3,10],[4,10],[5,50],[6,50],[7,10],[8,10],[9,10]];

两个数组都有唯一的key,但是对应的key需要求和。

我尝试了循环、连接等,但无法获得我需要的结果。

以前有人做过吗?

最佳答案

您可以使用 .reduce() 传递跟踪搜索结果并进行添加的对象。

演示: http://jsfiddle.net/aUXLV/

var array1 = [[5,10],[6,10],[7,10],[8,10],[9,10]];
var array2 = [[1,10],[2,10],[3,10],[4,10],[5,40],[6,40]];

var result =
array1.concat(array2)
.reduce(function(ob, ar) {
if (!(ar[0] in ob.nums)) {
ob.nums[ar[0]] = ar
ob.result.push(ar)
} else
ob.nums[ar[0]][1] += ar[1]

return ob
}, {nums:{}, result:[]}).result

如果您需要对结果进行排序,则将此添加到末尾:

.sort(function(a,b) {
return a[0] - b[0];
})

关于Javascript合并2个数组并对相同的键值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com