我有两个二维数组
var arr1 = [
[1, 'a'],
[2, 'b']
]
var arr2 = [
[3, 'a'],
[5, 'c']
]
我想将这两个数组相加,得到以下结果。
var output = [
[4, 'a'],
[2, 'b'],
[5, 'c']
]
我尝试编写了两个.map
函数,但是除了期望的结果之外,它还会返回很多重复项:
function sumArrays (arr1, arr2) {
var output = [];
arr2.map(function(i) {
arr1.map(function(n) {
if (i[1] === n[1]) {
output.push([i[0] + n[0], i[1]])
} else {
output.push(i)
}
})
})
return output;
}
有没有更简单的方法来做这件事,或者我现在应该删除除特定字符串以外的所有内容,只保留最高值?
感谢您的帮助。
{a : 4, b : 2, c : 5}
。 - adeneoarr1.concat(arr2).reduce((a,b)=>{return b[1] in a?a[b[1]]+=b[0]:a[b[1]]=b[0],a;},{});
- adeneo