Javascript:根据值在数组中对相似项进行分组

Javascript:根据值在数组中对相似项进行分组,javascript,arrays,Javascript,Arrays,我有一个像这样的对象数组 [ { _id: 123 }, { _id: 123 }, { _id: 321 } ] 我想按_id对相似的项目进行分组,并计算每个唯一_id中有多少个项目 [ { _id: 123 qty: 2 }, { _id: 321 qty: 1 } ] 使用javascript执行

我有一个像这样的对象数组

[
    {
        _id: 123
    },
    {
        _id: 123
    },
    {
        _id: 321
    }
]
我想按_id对相似的项目进行分组,并计算每个唯一_id中有多少个项目

[
    {
        _id: 123
        qty: 2
    },
    {
        _id: 321
        qty: 1
    }
]
使用javascript执行此操作的最佳方法是什么?

您可以在O(n)时间内使用和a作为累加器执行此操作:

const数组=[{u-id:123},{u-id:123},{u-id:321}]
常量组=[…array.reduce(
(map,{u id})=>map.set(_id,(map.get(_id)| | 0)+1),
新地图()
)].地图(
([\u id,qty])=>({\u id,qty})
)
console.log(组)
您可以使用和作为累加器在O(n)时间内完成此操作:

const数组=[{u-id:123},{u-id:123},{u-id:321}]
常量组=[…array.reduce(
(map,{u id})=>map.set(_id,(map.get(_id)| | 0)+1),
新地图()
)].地图(
([\u id,qty])=>({\u id,qty})
)

console.log(组)
发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试的内容,以便说明您遇到的具体障碍。有关更多信息,请参阅并获取。我确实尝试了SO的许多答案,但无法让它们用于我的特定案例。这与尝试自己编写代码不同-当您发布问题时,请发布您试图使用的代码。发布的问题似乎根本不包含解决问题的代码。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试的内容,以便说明您遇到的具体障碍。有关更多信息,请参阅并获取。我确实尝试了SO的许多答案,但无法将它们用于我的特定案例。这与尝试自己编写代码不同-当您发布问题时,请发布您尝试使用的代码