如何按对象数组进行分组和求和
How to group by and sum an array of objects?
我想按Id
对对象数组进行分组,并在jQuery中对数量求和。我怎样才能做到这一点?
例如:
var array = [
{ Id: "001", qty: 1 },
{ Id: "002", qty: 2 },
{ Id: "001", qty: 2 },
{ Id: "003", qty: 4 }
]
应导致:
[
{ Id: "001", qty: 3 },
{ Id: "002", qty: 2 },
{ Id: "003", qty: 4 }
]
您可以循环并汇总(减少文档)
var array = [
{ Id: "001", qty: 1 },
{ Id: "002", qty: 2 },
{ Id: "001", qty: 2 },
{ Id: "003", qty: 4 }
];
var result = [];
array.reduce(function(res, value) {
if (!res[value.Id]) {
res[value.Id] = { Id: value.Id, qty: 0 };
result.push(res[value.Id])
}
res[value.Id].qty += value.qty;
return res;
}, {});
console.log(result)
Fiddle:Fiddle
var newArr = [];
$.each(array,function(index,element){
if(newArr[element.Id]==undefined){
newArr[element.Id] =0;
}
newArr[element.Id] += element.qty;
});
console.log(newArr);
演示
相关文章:
- jquery试图按名称获取按钮位置
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何在DOM元素上按类型构建此函数
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 从html创建一个指令,该指令按类名应用函数
- 按下按钮时保存cookie
- 按顺序添加和删除类
- 按我自己的类克隆另一个元素的内容和顺序
- 我的django模板布尔变量是't在javascript中按预期工作
- 按从高到低对多个int变量进行排序
- 如何按对象数组进行分组和求和
- PHP/MySQL查询以按日期范围对列求和
- 在jquery中,代码希望按列对除第一行以外的所有数据求和.我如何通过以下代码实现它
- MongoDB聚合一般求和和按唯一键求和
- 对按第二个表键分组的数据库值求和
- Javascript按两个数字序列对数组中的数字求和
- 在javascript集合中分组(按年份)和求和
- 将对象中的值按四分之一系统求和
- 在JavaScript中按日期分组和求和DateTime对象