我有如下的对象数组:
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次出现。
abc
xyz
我正在做reactjs。我能够像[abc,xyz]使用此答案那样获得不同的价值。
reactjs
[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);