Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.

Сводка

Начальное значение свойства @@iterator является тем же самым функциональным объектом, что и начальное значение, возвращаемое методом values().

Синтаксис

arr[Symbol.iterator]()

Примеры

Пример: итерация посредством цикла for...of

var arr = ['w', 'y', 'k', 'o', 'p'];
// ваш браузер должен поддерживать цикл for..of
// и переменные с областью видимости let в циклах for
for (let letter of arr) {
  console.log(letter);
}

Пример: альтернативный способ итерации

var arr = ['w', 'y', 'k', 'o', 'p'];
var eArr = arr[Symbol.iterator]();
console.log(eArr.next().value); // w
console.log(eArr.next().value); // y
console.log(eArr.next().value); // k
console.log(eArr.next().value); // o
console.log(eArr.next().value); // p

Спецификации

Спецификация Статус Комментарии
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Array.prototype[@@iterator]()' в этой спецификации.
Стандарт Изначальное определение.

Совместимость с браузерами

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка 38 17 (17) (.iterator)
27 (27) (["@@iterator"])
36 (36) ([Symbol.iterator])
Нет 25 Нет
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка Нет Нет 17.0 (17) (.iterator)
27.0 (27) (["@@iterator"])
36.0 (36) ([Symbol.iterator])
Нет 25 Нет

Примечания по Gecko

  • С Gecko 17 (Firefox 17 / Thunderbird 17 / SeaMonkey 2.14) по Gecko 26 (Firefox 26 / Thunderbird 26 / SeaMonkey 2.23 / Firefox OS 1.2) вместо символа @@iterator использовалось свойство iterator (баг 907077), а с Gecko 27 по Gecko 35 — строка-заменитель "@@iterator" (баг 918828).

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: Mingun
Обновлялась последний раз: Mingun,