我有如下对象的数组:
var array =
[
{"name":"user1","value":1}
{"name":"user1","value":1}
{"name":"user1","value":1}
{"name":"user3","value":1}
{"name":"user3","value":1}
]
我想计算像这样的不同值的出现次数,并且输出应该像这样
var array =
[
{"name":"user1","value":3}
{"name":"user3","value":2}
]
我尝试了这个:
array.reduce((acc, o) => (acc[o.name] = (acc[o.name] || 0) + 1, acc), {})
但是输出不是我想要的:
{
"user1": 3,
"user3": 2
}
var array = [
{"name":"user1","value":1},
{"name":"user1","value":1},
{"name":"user1","value":1},
{"name":"user3","value":1},
{"name":"user3","value":1}
]
var reduced = array.reduce((acc, o) => (acc[o.name] = (acc[o.name] || 0) + 1, acc), {});
//Method 1
let result1 = [];
for (var prop in reduced) {
result1.push({name:prop,value:reduced[prop]});
}
console.log(result1)
//Method 2
var result2 = Object.keys(reduced).map(x => {
return {name : x, value : reduced[x]}})
console.log(result2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句