我正在创建一个对象数组。该数组可以有多个相同的对象,因此最终结果将类似于:
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/