Ваша другая часть имеет равенство вместо присваивания
obj[element] === 1;
оно должно быть
obj[element] = 1;
, поэтому ваш код фактически никогда не инициализирует какой-либо ключ на obj
function getFrequencies(arr) {
let obj = {};
for (let i = 0; i < arr.length; i++) {
let element = arr[i];
if (obj[element] !== undefined) {
obj[element] += 1;
console.log(obj, 'in if')
}
else {
obj[element] === 1;
console.log(obj, 'in else')
}
}
return obj
}
console.log(getFrequencies(["A", "B", "A", "A", "A"]));
Вы можете просто использовать reduce
function getFrequencies(arr) {
return arr.reduce((op, inp) => {
op[inp] = op[inp] || 0
op[inp]++
return op
},{})
}
console.log(getFrequencies(["A", "B", "A", "A", "A"]));