javascript - 删除重复项并汇总数量

标签 javascript arrays duplicates

var name = new Array();
var amount = new Array();
name[0]="Peter";
amount[0]="50";
name[1]="John";
amount[1]="10";
name[2]="John";
amount[2]="20";
name[3]="Peter";
amount[3]="20";
name[4]="Mary";
amount[4]="40";

我有类似上面的东西。我的问题是,如何创建一个函数来消除所有重复项并对数组中每个人的值求和?以下是我正在寻找的结果。

例如:

Peter 70
John  30
Mary  40

最佳答案

尝试以下操作

var sum = {};
var i;
for (i = 0; i < amount.length; i++) {
  var name = name[i];
  var oldSum = sum[name];
  if (typeof oldSum === 'undefined') {
    oldSum = 0;
  }
  sum[name] = oldSum + amount[i];
}

现在,对象 sum 将为 name 中的每个名称都有一个属性,并且该属性的值将是具有该名称的金额的总和

要打印它,请尝试以下操作

for (var prop in sum) {
  if (sum.hasOwnProperty(prop)) {
    console.log(prop + " " sum[prop]);
  }
}

关于javascript - 删除重复项并汇总数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13363751/

相关文章:

javascript - "Failed to inject axe-core into one of the iframes!"AX 可访问性错误

javascript - 将 JavaScript 循环导出到 CSV

javascript - 用图像替换复选框并更新 onClick(可能是 jQuery?)

PHP & WordPress : print array content

javascript通过相同的键查找对象并将它们合并

r - 删除重复的行,选择要保留的特定值

javascript 根据元素的高度改变高度

javascript - 如果为空,如何分配属性

sql - 重复主键sql

mysql - 如何通过保留重复项中的数据但原始项中没有数据的字段来删除MySQL中的重复记录?