javascript - 如何累加类型为对象数组的JSON集合的属性,在线等
本文介绍了javascript - 如何累加类型为对象数组的JSON集合的属性,在线等的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如何将类型为对象数组的 json
集合 arr
中的 price
属性累加计算,生成 obj_1
或 arr_1
?
用原生 js
的 for
循环 或 underscore
如何实现?
var arr = [
{ id:1, name: '商户1', price: 400 },
{ id:3, name: '商户3', price: 200 },
{ id:2, name: '商户2', price: 100 },
{ id:1, name: '商户1', price: 200 },
{ id:4, name: '商户4', price: 800 },
{ id:2, name: '商户2', price: 600 },
{ id:1, name: '商户1', price: 400 }
];
var obj_1 = {
1: { name: '商户1', price: 1000 },
2: { name: '商户2', price: 700 },
3: { name: '商户3', price: 200 },
4: { name: '商户4', price: 800 },
}
var arr_1 = [
{ id:1, name: '商户1', price: 1000 },
{ id:2, name: '商户2', price: 700 },
{ id:3, name: '商户3', price: 200 },
{ id:4, name: '商户4', price: 800 },
];
解决方案
试试这个
var reduced = arr.reduce(function(p, item) {
if (p[item.id]) {
p[item.id].price += item.price;
} else {
p[item.id] = {name: item.name, price: item.price};
}
return p;
}, {});
console.log(reduced);
这篇关于javascript - 如何累加类型为对象数组的JSON集合的属性,在线等的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文