首页 > 解决方案 > 如何计算数组中同名对象的数量?

问题描述

我有这个数组并试图获取具有相同name属性的对象的计数。我怎样才能做到这一点?也许以现代“es6”方式

let cars = [
    {id: 1, name: 'Mercedes', year: '2015'},
    {id: 2, name: 'Mercedes', year: '2000'},
    {id: 3, name: 'BMW', year: '2010'},
    {id: 4, name: 'BMW', year: '2004'},
    {id: 5, name: 'Volvo', year: '2012'},
    {id: 6, name: 'Volvo', year: '2014'} 
];

标签: javascriptarraysobjectecmascript-6

解决方案


let counterObj = {}

let cars = [
    {id: 1, name: 'Mercedes', year: '2015'},
    {id: 2, name: 'Mercedes', year: '2000'},
    {id: 3, name: 'BMW', year: '2010'},
    {id: 4, name: 'BMW', year: '2004'},
    {id: 5, name: 'Volvo', year: '2012'},
    {id: 6, name: 'Volvo', year: '2014'} 
];


for (property of cars){
    counterObj[property.name] = 1 + (counterObj[property.name] || 0)
}

console.log(counterObj)

这应该可以解决问题!


推荐阅读