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

ForEach изменяет текущий массив, тогда почему после консоль лога выводится не измененный массив?

const arr = [1, 2, 3, 4, 5]
arr.forEach(el => el * el);

console.log(arr) // [1,2,3,4,5]
  • Вопрос задан
  • 358 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Не изменяет, чтобы изменить, меняйте в callback функции, например так:

const arr = [1, 2, 3, 4, 5]
arr.forEach((elt, index, arr) => arr[index] = elt * elt);

console.log(arr) // [1, 4, 9, 16, 25]

Почитать: Массив: перебирающие методы

Посмотреть: Javascript-джедай #25 - ES5 методы массивов
Ответ написан
Simply1993
@Simply1993
Frontend developer
Ну вообще изменять массив с помощью forEach мне кажется неправильно.
Для этого есть более подходящий метод - map

const arr = [1, 2, 3, 4, 5];
const newArr = arr.map(el => el * el);

console.log(newArr);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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