当前位置: 首页 > 面试题库 >

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

公孙弘图
2023-03-14
问题内容

我有如下的对象数组:

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语法。


问题答案:

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

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);


 类似资料:
  • 我已经被设置了一个任务,这意味着我需要创建一个'3个或更多的骰子游戏‘。我所坚持的是这个游戏所需要的计分系统,它是这样的:“玩家依次掷出所有五个骰子,并为同类中的三个或更好的骰子得分。如果玩家只有同类中的两个,他们可能会重新掷出剩余的骰子,试图提高匹配的骰子值。如果没有匹配的数字被掷出,玩家得分为0。 游戏进行了一定数量的回合(比如50回合),游戏结束时总分最高的玩家是获胜者。“我需要计算出如何将

  • 我有一个任务,它获取一个int值“n”和一个Int Array作为参数,并且应该返回一个布尔值。该方法应该确定给定数组中有多少个“n”。如果数字是偶数,则方法应该返回true,否则返回false。如果数组的长度为0,它也应该返回“false”。 我设法做到的是: 老实说,我真的很困惑,我不知道该怎么办。我真的已经尽力了,但是我在这项任务上工作的时间越长,我就越不理解。感谢任何帮助,并提前感谢您!:

  • 问题内容: 假设我有以下内容: 能够获得所有不同年龄的数组的最佳方法是什么,这样我得到以下结果数组: 有什么办法可以替代地构造数据或更好的方法,这样我就不必遍历每个数组来检查“ age”的值并针对另一个数组检查其是否存在,如果没有,可以添加它? 如果有某种方法,我可以不重复就退出不同的年龄… 我想改善当前无效的方法…如果这意味着不是“数组”是对象数组,而是带有一些唯一键(即“ 1,2,3”)的对象

  • 问题内容: 我已经看到了一些这样的示例,但是所有这些似乎都依赖于知道要计算发生次数的元素。我的数组是动态生成的,所以我无法知道要计算哪个元素的出现(我想计算所有元素的出现)。有人可以建议吗? 提前致谢 编辑: 也许我应该更清楚一点,数组将包含多个不同的字符串(例如 在不知道它们是什么的情况下,如何计算foo,bar和foobar的出现? 问题答案: Swift 3和Swift 2: 您可以使用类型

  • 本文向大家介绍php计算数组相同值出现次数的代码(array_count_values),包括了php计算数组相同值出现次数的代码(array_count_values)的使用技巧和注意事项,需要的朋友参考一下 php计算数组相同值出现次数,可以使用php自带函数array_count_values : 说明 array array_count_values ( array $input )arr

  • 假设我有这两个数组: 如何从ARR2获取arr1中的出现次数。两个数组中的所有字符串都是唯一的,不会有重复的。显然,在这个具体案例中的结果是2。 我试过的: 问题是我必须在很少的情况下使用它,并且变量总是在变化,这取决于您单击的内容,而您不能依赖它的值。 提前谢谢!