我有如下的对象数组:
var array =
[
{"name":"abc","age":20}
{"name":"abc","age":20}
{"name":"abc","age":20}
{"name":"xyz","age":21}
{"name":"xyz","age":21}
]
我想计算不同值的出现次数,例如:
[3,2]
假设abc出现3次,xyz出现2次.
我在reactjs中做到这一点.我可以使用this answer获得不同的值,例如[abc,xyz].
首选ES6语法.
解决方法:
您需要知道计数属于哪个名称,所以我建议不要输出不提供任何线索的数组,而要输出一个以名称为键并以值作为对应值的对象:
var result = array.reduce( (acc, o) => (acc[o.name] = (acc[o.name] || 0)+1, acc), {} );
var array =
[
{"name":"abc","age":20},
{"name":"abc","age":20},
{"name":"abc","age":20},
{"name":"xyz","age":21},
{"name":"xyz","age":21}
];
var result = array.reduce( (acc, o) => (acc[o.name] = (acc[o.name] || 0)+1, acc), {} );
console.log(result);
标签:javascript,arrays,ecmascript-6,reactjs
来源: https://codeday.me/bug/20191010/1888238.html