javascript - 如何根据javascript中第一行的结果在二维数组上添加数字集

标签 javascript multidimensional-array

我有一个二维数组:

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/

相关文章:

javascript - 使用Reactjs Router Switch进行导航时如何在网页之间传递变量

javascript - 有没有办法在没有 jQuery 的情况下做同样的事情,只使用 CSS3 和 HTML5

javascript - 如何将 SQLite 结果传递给 Nodejs 中的回调

c# - 为什么 typeof(Object[,][]).Name 等于 "Object[][,]"?

java - 遍历 Java 列表

javascript - 隐藏内容以防止在 JavaScript 制作的游戏中作弊

javascript - Backbone.js - 从 url 返回 JSON

python - Python 中通过其他数组排序索引对数组进行排序

PHP - 如何以任何顺序测试多维数组中的重复元素值

php - 不使用foreach递归遍历多维数组