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/