@Keterone

Почему может выдавать undefined при использовании .forEach?

let arr = [1, 3, 0, 4, 6];
arr = arr.forEach(elm => Math.sqrt(elm))


Выдает undefined, в чем проблема?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
Shev_Art_V
@Shev_Art_V
Занимаюсь разработкой сайтов на Modx Revolution
let arr = [1, 3, 0, 4, 6],
arr1 = [];
arr.forEach(elm => arr1.push(Math.sqrt(elm)));
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@vabka
Токсичный
Наверно из-за того что так и задумано? https://developer.mozilla.org/ru/docs/Web/JavaScri...
forEach работает также, как и обычный цикл for of
Ответ написан
Tim-A-2020
@Tim-A-2020 Куратор тега JavaScript
Согласно документации forEach возвращает undefined. См MDN doc
Если хотите вернуть новый массив, то лучше используйте [].map. Метод [].map создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.
Пример:
let arr = [1, 3, 0, 4, 6];
arr = arr.map(elm => Math.sqrt(elm));
console.log(arr);//[1, 1.7320508075688772, 0, 2, 2.449489742783178]
Ответ написан
@0ffff0
В javascript foreach предназначен для перебора литералов объекта или Map, а не простых одномерных массивов.
Литерал объекта
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $