В Java вы можете использовать для каждого цикла, говоря:
for (elemento e : array)
Также в jQuery:
$.each(arr, function() {
В JavaScript я знаю, что могу сделать:
for (var i = 0; i > 10; i ++)
Но есть ли способ сделать для каждого в чистом JavaScript?
Способы перебора массивов и объектов в JavaScript
Массив # для каждого метода
Метод Object#keys в сочетании с методом Array#forEach
петля for-i
цикл for-in
цикл for-of
Вывод:
forEach
принимает функцию в качестве обратного вызова . При передаче этой функции, которая действует как итератор, она вызывается для каждого элементаArray
.*Примечание. Работает с ECMAScript 5.
перезвонить
Функция, которая передается в качестве обратного вызова , принимает 3 параметра: значение элемента, индекс и ссылку на итерируемый массив. Последние 2 являются необязательными (в первом примере просто передан элемент). Если бы мы также хотели использовать индекс:
Кроме того, следует отметить, что
.forEach
он вообще не мутирует в форматarray
. Если значение измененоelemento
, тоarray
не будет изменено (хотя на него можно ссылаться для изменения значения).Другие подобные функции
.every()
Выход из цикла, как только функция возвращает значениеfalse
..some()
Выход из цикла, как только функция возвращает значениеtrue
.В качестве примечания и исправления комментария @dddenis об итерации объекта отметьте, что объекты также могут быть итерированы с помощью этого метода.
Конструктор Object имеет метод Object.keys() , который возвращает массив свойств данного объекта.
Таким образом, мы могли бы выполнить итерацию указанного массива и получить доступ к значениям указанных свойств следующим образом:
Foreach использует await и async, проверьте следующий код: