5 回答

TA貢獻1810條經(jīng)驗 獲得超5個贊
這是適合您的解決方案:
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" },
];
let numbers = cars.reduce((acc, child) => {
if (!acc[child.name]) {
acc[child.name] = 0;
}
acc[child.name]++;
return acc;
}, {});
console.log(numbers);

TA貢獻1829條經(jīng)驗 獲得超7個贊
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" },
{ id: 7, name: "Volvo", year: "2012" },
{ id: 8, name: "Volvo", year: "2014" },
{ id: 9, name: "Volvo", year: "2012" }
];
let result = cars.reduce((acc, child, index) => {
const indexFinded = acc.findIndex(el => el.name==child.name && el.year ==child.year);
const result = {}
if(indexFinded == -1) {
result.name = child.name;
result.year = child.year;
result.qtd = 1;
acc.push(result)
} else {
acc[indexFinded].qtd += 1
}
return acc;
}, []);
console.log(result);

TA貢獻1906條經(jīng)驗 獲得超3個贊
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'}
];
let obj = {}
cars.forEach((item) => {
//console.log(obj[item.name]) this return as undefined
if (!obj[item.name]) {
obj[item.name] = 1;
} else {
obj[item.name] += 1;
}
})
console.log(obj)

TA貢獻1802條經(jīng)驗 獲得超6個贊
您可以使用一個簡單的reduce函數(shù),該函數(shù)將遍歷每個對象并將計數(shù)加一
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" }
];
let count = cars.reduce((acc, child) => {
acc[child.name] = (acc[child.name] || 0) + 1;
return acc;
}, {});
console.log(count);

TA貢獻1820條經(jīng)驗 獲得超2個贊
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)
添加回答
舉報