2)
console.log(numbers) // 1, 2, 3, 4, 5
forEach не создает новый массив. Просто вызывается функция для каждого элемента, ты в ней возвращаешь результат вычисления number => number * 2 но forEach этот возвращаемый результат никак не использует а map да - возьмет возвращаемое значение и добавить его в новый массив
Ок, я могу поменять исходный массив в через форич и умножить на два?
Ты хочешь посчитать все цифры чтоли?
Нет, перемножить исходный массив.
теоретически да, но это не будет ничем отличаться от обычного фора
Чтобы получились числа умноженные на 2?
Угу, вот в этом и соль была. Хотелось все через форич сделать, т.к. я хочу чейнить типа filter, map и в конце форич, а у меня всегда андефанд вылетал из-за него, т.к. ничего не возвращает. Поэтому вступор он меня ввел.
форич имеет смысл использовать только в конце чейна
Он в конце и на нем вылетает андефайнд, давай пример сделаю по быстрому.
так и должно быть, форич ничего не возвращает, он используется только для сайд-эффектов
const numbers = [1,2,3,4,5,6,7,8,9,10] const changed = numbers .map(number => number * 2) .forEach(number => number + 1) // здесь ошибка
замени последний .forEach на .map
Можешь мне назвать предположительный результат который ты хочешь получить
Изменить исходный массив, всё.
Умноженный на 2?
Без разницы, да. Чтобы чейнить можно было.
используй map, т.к. он возвращает новый массив, к которому ты можешь причейниться forEach ничего не возвращает, поэтому и не причейнивается
нифига тебе 23 человека ответило
Ветка 23, а не людей.
Нафига тебе 25 человек ответило
Обсуждают сегодня