我有一个数组,
数据
,有几个项目重复。我试图使用数组上的reduce方法返回一个包含每个项的对象,以及该项在
数据
大堆
第一个减速功能正常工作。第二个是我想出的,在我看来是一样的,只是没有检查
if(!obj[item])
我正在检查
if(obj[item])
使用else块。我不知道这两种解决方案有何不同,尽管它们必须。。。好像是我的
(obj[item])
从来都不是真的,因为我每件物品的计数都是0。
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
const transportation = data.reduce((obj, item) => {
if (!obj[item]) {
obj[item] = 0;
}
obj[item]++;
return obj;
}, {});
console.log(transportation);
var instances = data.reduce((totalObj, item) => {
if (totalObj[item]) {
totalObj[item]++;
} else {
totalObj[item] = 0;
}
return totalObj;
}, {});
console.log(instances);