const arr = [1, 3, 4, 1, 1, 3, 4, 5];
const result = {};
arr.forEach((a) => {
if (result[a] !== undefined) {
++result[a];
} else {
result[a] = 1;
}
});
for (let key in result) {
console.log('число %d == %d раз(а)', +key, result[key]);
}
forEach()
вызывает функцию по очереди с каждым из элементов массива. В данном примере вызовется function(1), function(3), function(4), ... function(5)result
это объект, где свойствами будут встреченные цифры (как строки).result
нет, и, например, result[1]
будет поначалу undefined
. И в таком случае создаётся это свойство со значением 1
.undefined
, и оно будет увеличено на 1.