Задать вопрос
@Shimpanze

Объясните про forEach?

Здравствуйте!

var arr = ["Яблоко", "Апельсин", "Груша"];

arr.forEach(function(item, i, arr) {
  alert( i + ": " + item + " (массив:" + arr + ")" );
});


Третий параметр у callback-функции «arr» это «массив, который перебирается».

Но ведь массив который перебирается задаётся сразу перед методом «forEach» — arr.forEach(function(...?

Для чего его пихать ещё и в callback-функцию-то, не пойму?

Спасибо!
  • Вопрос задан
  • 286 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 2
filgaponenko
@filgaponenko
frontend developer
Это удобно использовать в случае использования именованной функции в качестве коллбека для forEach.
Так как функция может быть определена где-то в другом месте (например мы ее импортируем из другого модуля), она может не иметь доступа к области видимости в которой хранится массив использующий ее.

Также, даже если из функции доступен массив из внешней области видимости — все равно хорошим тоном считается использование аргумента функции.

arr.forEach(doSomeStuffForEveryItem);

function doSomeStuffForEveryItem(item, i, arr) {
  теперь тут arr доступен через переменную.
}
Ответ написан
Комментировать
rockon404
@rockon404
Frontend Developer
Но ведь массив который перебирается задаётся сразу перед методом

Массив не задается, нем лишь вызывается метод. Задаете вы его выше.

Для чего его пихать ещё и в callback-функцию-то, не пойму?

Колбек функция может передаваться из другого места и при этом использовать массив.
arr.forEach(callback);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Для удобства.
Можно же вообще через for ... in перебирать, но через forEach удобнее же.

Просто очередная крупинка синтаксического сахара.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы