javascript - 如何计算数组中有多少个不同的对象?

标签 javascript arrays

我正在创建一个对象数组。该数组可以有多个相同的对象,因此最终结果将类似于:

MyArray = [obj1, obj1, obj2]

我想在不声明新变量的情况下计算数组中有多少个 obj1,因为我想使用此方法来存储和计算数百个不同的对象。

这是用于管理订单的 Angular 网络应用程序。

我正在考虑将这些对象存储为:

MyArray = [{obj1: 2}, {obj2: 1}]

但我不知道该怎么做,也不知道如何在添加另一个对象时增加该值。

提前致谢。

最佳答案

你可以拿一个Map ,您可以在其中将对象作为键并计算出现次数。

var o1 = { a: 1 },
    o2 = { a: 1 },
    o3 = { a: 1 },
    array = [o1, o2, o1, o3, o1, o2],
    count = array.reduce((m, o) => m.set(o, (m.get(o) || 0) + 1), new Map);
    
console.log(Array.from(count));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何计算数组中有多少个不同的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54054158/

相关文章:

javascript - 判断 Javascript 中的对象是否具有任何属性

javascript - 根据现有对象数组的几个属性返回新的对象数组

javascript - 使用 CSS 媒体查询时不打印背景

javascript - 更改可观察值

php - 按列对平面文件中的数据进行排序

arrays - 将哈希值与 Ruby 中相应的数组值进行比较

javascript - 在 Javascript 中将带空格的字符串数组转换为小写,然后在 Webkit 中搜索失败

javascript - javascript 全局数组的作用域

javascript - 如何将数字分成随机生成的部分

javascript - Zend Framework 1应用程序中的缓存清除静态 Assets