@Ivanushka255

Объект-итератор не итерирует объект. Почему?

В первом случае итерация выполняется всегда с самого начала, нет продолжения.
let arr = ['Lika', 'Kate', 'Rita', 'Liza'];
console.log(arr.values().next().value);  //'Lika'
console.log(arr.values().next().value); //'Lika' --> 2-ой вызов итератора все равно выдает 1-ый эл-нт

Во втором случае итерация выполняется последовательно. Почему? Переменная же не хранит результат первой итерации. Все, что делает переменная - это хранит объект-итератор.
let arr = ['Lika', 'Kate', 'Rita', 'Liza'];
let iteratorValues = arr.values();
console.log(iteratorValues.next().value); //'Lika'
console.log(iteratorValues.next().value); //'Kate'


В чем разница? Почему в первом случае итерация не "идет дальше", а во втором случае "идет"?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Вызов arr.values() всегда возвращает новый объект итератора, "перемотанный" на начало. Поэтому в первом случае у вас два разных итератора, а во втором - один и вы по нему идёте.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы