Я пытался использовать простую функцию подсчета частот для Массива транспортных средств:
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck', 'airplane'];
использовались два отдельных, но похожих выражения: где оба, как мне кажется, выражены одинаково: если не в объекте это равно 0, если в obj продолжайте добавлять один. Однако функция, использующая троичный оператор, дает объект с именами транспортных средств, но все со значением 0.
1.
let sumVeh = data.reduce((obj, veh) => {
if(!obj[veh]) obj[veh] = 0;
obj[veh]++;
return obj;
}, {})
РЕЗУЛЬТАТ:
{car : 5, truck : 3, bike : 2....}
2 .
let sumVeh = data.reduce((obj, veh) => {
!obj[veh] ? obj[veh] = 0 : obj[veh]++;
return obj;
}, {})
РЕЗУЛЬТАТ:
{car : 0, truck : 0, bike : 0....}
Почему он это делает ?? Я просто не мог понять ... Спасибо заранее!