Метод forEach
Метод forEach позволяет последовательно перебрать все элементы массива. Метод в параметре получает функцию, которая выполнится для каждого элемента массива.
В эту функцию можно передавать три параметра. Если эти параметры есть (они не обязательны), то в первый автоматически попадет элемент массива, во второй попадет его номер в массиве (индекс), а в третий — сам массив.
Синтаксис
массив.forEach(function(элемент, индекс, массив) < код, который выполнится для всех элементов >);
Пример
Давайте выведем элементы массива в консоль:
let arr = [1, 2, 3, 4, 5]; arr.forEach(function(elem) < console.log(elem); >);
Пример
Давайте выведем элементы и их номера в консоль:
let arr = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]; arr.forEach(function(elem, ind) < console.log(elem, ind); >);
Пример
Давайте найдем сумму элементов массива:
let arr = [1, 2, 3, 4, 5]; let sum = 0; arr.forEach(function(elem) < sum += elem; >); console.log(sum);
Результат выполнения кода:
Смотрите также
- метод map ,
который также позволяет применить функцию к каждому элементу массива - метод filter ,
который позволяет фильтровать элементы массива - методы some и every ,
выполняющие проверку массива - методы reduce и reduceRight ,
сворачивающие массив к одному значению
Как работает метод foreach с объектами в массиве javascript
Допустим, у нас есть массив объектов cars , каждый из которых имеет свойства brand и model . Мы хотим вывести в консоль название каждой машины в формате «Brand Model». Для этого мы можем использовать метод forEach следующим образом:
const cars = [ brand: 'Toyota', model: 'Camry' >, brand: 'Honda', model: 'Civic' >, brand: 'Ford', model: 'Mustang' >, ]; cars.forEach((car) => console.log(`$car.brand> $car.model>`); >);
В результате выполнения этого кода в консоль будет выведено:
Здесь мы передаем функцию обратного вызова в метод forEach , которая принимает каждый элемент массива cars (объект) в качестве аргумента и выводит его свойства brand и model в консоль.
26 сентября 2022
Метод forEach() выполняет указанную функцию один раз для каждого элемента в массиве.
Например, необходимо в массиве [1, 2, 3, 4, 5] к каждому элементу прибавить число 10 и вывести на экран:
const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; nums.forEach((num) => num += 10; console.log(num); >); // Вывод: 11 12 13 14 15 16 17 18 19 20
Метод forEach() ничего не возвращает. Если вам нужен результат прохода то необходимо воспользоваться другими методами массивов: every() , some() , find()
Как работает forEach в javascript
Помогите понять как работает forEach в js. Былоб хорошо наглядный пример. Одна и таже задача решённая с применением «for» и «forEach» Спасибо Отформатирую свой вопрос чтоб было более понятно. Спасибо за ответ тем кто ответил. Из-за чего возник вопрос. Я подумал как переписать это код используя forEach
let length = 1; snake = []; for (let i = length - 1; i >= 0; i--)
И это оказалось совсем не так проосто как я думал. Поетому мне и нужен наглядный пример с forEach и for чтоб понять как работает. Буду благодарн
Отслеживать
задан 13 мая 2017 в 9:01
488 1 1 золотой знак 5 5 серебряных знаков 16 16 бронзовых знаков
13 мая 2017 в 9:04
forEach всегда обходит коллекцию начиная с начала. В твоем примере, ты обходишь коллекцию с конца, следовательно данное поведение нельзя реализовать с помощью forEach напрямую
13 мая 2017 в 11:29
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Метод forEach() выполняет указанную функцию один раз для каждого элемента в массиве.
arr.forEach(callback[, thisArg])
callback -
Функция, создающая элемент нового массива, принимает три аргумента:
currentValue
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при вызове функции callback .
Метод forEach() выполняет функцию callback один раз для каждого элемента, находящегося в массиве в порядке возрастания. Она не будет вызвана для удалённых или пропущенных элементов массива. Однако, она будет вызвана для элементов, которые присутствуют в массиве и имеют значение undefined .
Функция callback будет вызвана с тремя аргументами:
значение элемента ( value ) индекс элемента ( index ) массив, по которому осуществляется проход ( array ) Если в метод forEach() был передан параметр thisArg , при вызове callback он будет использоваться в качестве значения this . В противном случае, в качестве значения this будет использоваться значение undefined . В конечном итоге, значение this , наблюдаемое из функции callback , определяется согласно обычным правилам определения this , видимого из функции.
Диапазон элементов, обрабатываемых методом forEach() , устанавливается до первого вызова функции callback . Элементы, добавленные в массив после начала выполнения метода forEach() , не будут посещены функцией callback . Если существующие элементы массива изменятся, значения, переданные в функцию callback , будут значениями на тот момент времени, когда метод forEach() посетит их; удалённые элементы посещены не будут.
function logArrayElements(element, index, array) < console.log('a[' + index + '] = ' + element); >// Обратите внимание на пропуск по индексу 2, там нет элемента, поэтому он не посещается [2, 5, , 9].forEach(logArrayElements); // логи: // a[0] = 2 // a[1] = 5 // a[3] = 9
let arr = ["1", "2", "3"]; arr.forEach(function(item, i, arr) < alert(` $: $ (массив: $)`); >);
forEach() JS — метод для перебора массива
Метод forEach() в языке JS используется для прохода всех элементов массива. Данный цикл работает так — он перебирает каждый элемент и выполняет переданную ему функцию для каждого элемента.
Теперь давайте рассмотрим параметры, которые данный метод принимает
array.forEach(function callback(currentValue, index, currentArray)[, thisArg]);
callback — та самая функция, которая будет вызвана для каждого элемента при выполнении цикла forEach
Callback может быть стрелочной функцией и принимает такие параметры
- currentValue — значение текущего элемента массива
- index — порядковый номер элемента (начиная с 0)
- currentArray — массив, который мы перебираем
thisArg — это необязательный параметр. Значение, используемое в качестве this при вызове функции callback .
Примеры использования
Самый простой пример:
let arr = ["John", "Mike", "Andry", "Shenon"]; arr.forEach((item, index) => < // item - элемент массива на текущей итерации // index - порядковый номер элемента в массиве console.log(`$: $`); >)
-
, к которому вам нужно из массива добавить данные:
Итак, сначала мы с DOM дерева вытягиваем список ul, чтобы потом к нему добавить каждый элемент li. Задаем переменную, к которой добавим пункты списка. С помощью метода forEach() проходим по нашему массиву и добавляем всё к li. Затем с помощью .innerHTML добавляем это к полученному ul.
Полный код с html смотрите тут:
Теперь рассмотрим пример, когда у нас есть массив и нам нужно заменить какое-то значение при условии. Например, в массиве из примера выше, нам нужно заменить Toyota на Lexus:
let arr = ['BMW', 'Mercedes', 'Volkswagen', 'Toyota']; arr.forEach((item, index) => < if (item === 'Toyota') < arr[index] = 'Lexus'; // Выбираем нужный элемент массива по его индексу и присваиваем ему новое значение >>) console.log(arr); // ['BMW', 'Mercedes', 'Volkswagen', 'Lexus']
Пишем свой forEach с помощью цикла
В JS метод forEach сделан для удобства, но мы также можем пройтись по массиву используя обычный цикл for.
let arr = [‘Mike’, ‘Ray’, ‘Liam’, ‘Mason’, ‘Jacob’]; for (let i = 0; i
Перебор массива объектов
Скорее всего на практике вам чаще всего придется делать перебор массива объектов, чтобы вывести какие-либо данные, изменить свойства объекта или добавить что-либо к объекту.
Давайте рассмотрим такие примеры.
Пример 1. У нас есть ответ от сервера с именами и возрастом пользователей. Нам нужно вывести данные только тех пользователей, которые старше 18
let users = [ < name: 'Steve', age: 18 >, < name: 'John', age: 12 >, < name: 'Liam', age: 16 >, < name: 'Mike', age: 20 >, < name: 'Jacob', age: 21 >] users.forEach(user => < if (user.age >= 18) console.log(user.name); >);
В данном случае на каждой итерации в переменную user мы получаем объект. Мы знаем, что у него есть свойство age и с помощью if мы проверяем соответствует ли возраст пользователя нашему условию (18 лет). Если да, тогда выводим имя в консоль.
Пример 2. Давайте добавим всем пользователям свойство city.
let users = [ < name: 'Steve', age: 18 >, < name: 'John', age: 12 >, < name: 'Liam', age: 16 >, < name: 'Mike', age: 20 >, < name: 'Jacob', age: 21 >] users.forEach(user => < user.city = 'New York'; >);