我有这样的二维数组:
[[ONE,1],[QUARTER,0.25],[QUARTER,0.25]]
我希望它成为:
[[ONE,1],[QUARTER,0.5]]
我尝试使用array.IndexOf但没有运气
ONE,1,QUARTER,0.25,QUARTER,0.25
答案 0 :(得分:1)
与您的问题标题相反,您的示例建议您要 sum 而不是过滤器数组。
let arr = [['ONE', 1], ['QUARTER', 0.25], ['QUARTER', 0.25]];
let sums = arr.reduce((sums, item) => {
let found = sums.find(([key]) => key === item[0]);
if (found)
found[1] += item[1];
else
sums.push(item);
return sums;
}, []);
console.log(sums);
答案 1 :(得分:0)
您可以通过查看是否存在相同的键来简化数组。
var array = [['ONE', 1], ['QUARTER', 0.25], ['QUARTER', 0.25]],
result = array.reduce((r, [key, value]) => {
var temp = r.find(a => a[0] === key);
if (temp) {
temp[1] += value;
} else {
r.push([key, value]);
}
return r;
}, []);
console.log(result);