小编典典

如何计算Javascript中对象数组中不同值的出现次数?

reactjs

我有如下的对象数组:

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。我能够像[abc,xyz]使用此答案那样获得不同的价值。

首选ES6语法。


阅读 359

收藏
2020-07-22

共1个答案

小编典典

您将需要知道计数属于哪个名称,所以我建议不要输出不提供任何线索的数组,而要输出一个以名称为键并以值作为对应值的对象:

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);
2020-07-22