我有这样的阵列
[
{
item_guid: "57e7a1cd6a3f3669dc03db58"
quantity:3
},
{
item_guid: "57e77b06e0566d496b51fed5"
quantity:3
},
{
item_guid: "57e7a1cd6a3f3669dc03db58"
quantity:3
},
{
item_guid: "57e77b06e0566d496b51fed5"
quantity:3
}
]
Run Code Online (Sandbox Code Playgroud)
我想从这里将类似的item_guid东西合并成一个对象和数量得到这样的总结
[
{
item_guid: "57e7a1cd6a3f3669dc03db58"
quantity:6
},
{
item_guid: "57e77b06e0566d496b51fed5"
quantity:6
}
]
Run Code Online (Sandbox Code Playgroud)
我知道这可以实现一些循环,而我正在寻找使用lodash或EcmaScript2015代码的解决方案,让我们的生活更轻松
一个简单的方法:
遍历数据并创建一个对象,其中键将是唯一的id,其值将是数量。然后环回对象的键并创建对象。
var data = [{ item_guid: "57e7a1cd6a3f3669dc03db58", quantity: 3 }, { item_guid: "57e77b06e0566d496b51fed5", quantity: 3 }, { item_guid: "57e7a1cd6a3f3669dc03db58", quantity: 3 }, { item_guid: "57e77b06e0566d496b51fed5", quantity: 3 }]
var r = {};
data.forEach(function(o){
r[o.item_guid] = (r[o.item_guid] || 0) + o.quantity;
})
var result = Object.keys(r).map(function(k){
return { item_guid: k, quantity: r[k] }
});
console.log(result)Run Code Online (Sandbox Code Playgroud)