Книга: JavaScript. Подробное руководство, 6-е издание
11.4.1. Цикл for/each
11.4.1. Цикл for/each
Цикл for/each
- это новая инструкция цикла, определяемая стандартом Е4Х. Е4Х (ECMAScript for XML) - это расширение языка, позволяющее употреблять в программах на языке JavaScript теги языка XML и предоставляющее функции для работы с данными в формате XML. Стандарт Е4Х реализован далеко не во всех веб-броузерах, но он поддерживается реализацией JavaScript проекта Mozilla, начиная с версии 1.6 (в Firefox 1.5). В этом разделе мы рассмотрим только цикл for/ each
и особенности его использования с обычными объектами, не имеющими отношения к XML. Остальные подробности о Е4Х приводятся в разделе 11.7.
Цикл for each
напоминает цикл for/in
. Однако вместо итераций по свойствам объекта он выполняет итерации по значениям свойств:
let о = {one: 1, two: 2, three: 3}
for(let p in o) console.log(p); // for/in: выведет 'one', 'two', 'three'
for each (let v in o) console.log(v); // for/each: выведет 1, 2, 3
При использовании с массивами цикл for/each
выполняет итерации по элементам (а не по индексам) массива. Обычно он перечисляет их в порядке следования числовых индексов, но в действительности такой порядок не определяется стандартом и не является обязательным:
а = ['один', два', 'три'];
for(let р in a) console.log(p); // Выведет индексы массива 0, 1, 2
for each (let v in a) console.log(v); // Выведет элементы 'один', 'два', три'
Обратите внимание, что область применения цикла for/each
не ограничивается элементами массива - он может перечислять значения перечислимых свойств объекта, включая перечислимые методы, унаследованные объектом. По этой причине обычно не рекомендуется использовать цикл for/each
для работы с объектами. Это особенно верно для программ, которые должны выполняться под управлением версий интерпретаторов JavaScript до ECMAScript 5, в которых невозможно сделать пользовательские свойства и методы неперечислимыми. (Смотрите аналогичное обсуждение цикла for/in
в разделе 7.6.)
- Оператор цикла foreach
- Директива parallel for
- xinetd Configuration for wu-ftpd
- Пример 12-39. Использование seq для генерации списка аргументов цикла for
- Оператор цикла for
- 10.5.1 Preparing for RTOS
- Досрочный выход из циклов
- Метод Пиза для for-цикла
- Цикл for
- Цикл for…in
- Цикл For…Next
- Цикл For Each…Next