gpt4 book ai didi

javascript - 如何按顺序对数组中的重复值求和

转载 作者:行者123 更新时间:2023-12-05 08:25:03 25 4
gpt4 key购买 nike

我需要一些帮助来按顺序对数组中的值求和

我有两个数组:

array1 = ['car', 'car', 'ball', 'piano', 'car'] 
array2 = ['2500', '1000', '400', '2500', '4500']

我正在使用下面的代码删除 array1 中的重复值:

var uniqueValues = [];
for(var i in array1){
if(uniqueValues.indexOf(array1[i]) === -1){
uniqueValues.push(array1[i]);
}
}

//returns ['car', 'ball', 'piano']

我需要的是使用 array1 的顺序对 array2 的值​​求和,所以我会得到这样的结果:

result = ['8000', '400', '2500']

所以最终的结果是这样的:

array1 = ['car', 'ball', 'piano'] 
array2 = ['8000', '400', '2500']

有什么建议吗?谢谢。

最佳答案

减少就可以了

注意 Does JavaScript guarantee object property order?

let array1 = ['car', 'car', 'ball', 'piano', 'car'] 
let array2 = ['2500', '1000', '400', '2500', '4500']

const merged = array1.reduce((acc,cur,i) => {
acc[cur] = (acc[cur] || 0) + +array2[i]; // add after casting to number
return acc
},{})

console.log(merged)

array1 = Object.keys(merged)
array2 = Object.values(merged)

console.log(array1)
console.log(array2)

关于javascript - 如何按顺序对数组中的重复值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69163980/

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