我有一个二维数组:
var array = [["Alex", 10], ["Sam", 15], ["Alex", 20], ["Rob", 20], ["Sam", 10]];
如何创建一个新数组,其结果将是这样的。
newArray = [["Alex", 30], ["Sam", 25], ["Rob", 20]];
所以基本上我想要的是获得特定个体的数字总和。
如有任何帮助,我们将不胜感激。我不知道我是否能够正确地解释这个问题。
最佳答案
您可以使用array#reduce
并将每个数组与其中的名称相关联。如果名称重复,请添加其数值。之后,使用 Object.values()
var array = [["Alex", 10], ["Sam", 15], ["Alex", 20], ["Rob", 20], ["Sam", 10]];
var result = array.reduce((res,[name,val]) => {
if(name in res)
res[name][1] += val;
else
res[name] = [name,val];
return res;
},Object.create(null));
console.log(Object.values(result));
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 如何根据javascript中第一行的结果在二维数组上添加数字集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47268634/