@aalexandrovich944

Работа с массивами. Метод forEach и его принцип работы?

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]);
}


Объясните, пожалуйста, почему повторяющиеся цифры не равны undefined?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
forEach() вызывает функцию по очереди с каждым из элементов массива. В данном примере вызовется function(1), function(3), function(4), ... function(5)

result это объект, где свойствами будут встреченные цифры (как строки).

Пока цифра не встречалась, такого свойства у result нет, и, например, result[1] будет поначалу undefined. И в таком случае создаётся это свойство со значением 1.

А если такое свойство (со значением-счётчиком = 1 или уже больше) найдено, это значение не равно undefined, и оно будет увеличено на 1.

Так и сосчитается, сколько раз встречается каждое из значений.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы