Когда использовать Iterator вместо обычных циклических конструкций - Javascript

Я читал статьи, касающиеся Итераторов и Итераторов в ES6. Я видел один пример, как показано ниже.

let someArr = [1, 2, 3, 4];
let iteratorVar = someArr[Symbol.iterator]();

console.log(iteratorVar.next().value); // If we log for 5 times, it will print all array elements. 

Но я сомневаюсь, что мы можем просто использовать циклы for, while и etc, чтобы получить каждый элемент из массива, как показано ниже

for (let i = 0; i < someArr.length; i++) {
  console.log(someArr[i]);
}

Итак, в чем преимущество использования Iterables и Iterators по сравнению с обычными конструкциями циклических операций, такими как for, while и т. д ...

Я не получил никакого разъяснения в статьях, которые я прочитал. Спасибо за вашу помощь.

4 голоса | спросил Javascript Lover - SKT 24 AMpTue, 24 Apr 2018 05:15:13 +030015Tuesday 2018, 05:15:13

1 ответ


0
Ряд возможностей в языке определяется в терминах итераторов.Это включает в себя синтаксис, такой как цикл ---- +: = 0 =: + ----, а также распространение ( ---- +: = 1 =: + ---- ) массивов, карт инаборы.Тем не менее, у вас почти никогда нет причин напрямую манипулировать итератором.Тем не менее, существуют ситуации, когда это необходимо.Например, представьте, что мы хотим написать функцию ---- +: = 2 =: + ----, которая объединяет соответствующие элементы нескольких итераций.Поскольку итерации могут быть бесконечными, мы не можем создать массив и вернуть его.С одной стороны, мы не можем распределить бесконечное количество памяти, а с другой стороны, мы не можем ограничить свой ввод конечными последовательностями.В этом случае непосредственное управление итератором дает нам именно то, что нам нужноТо есть ---- +: = 4 =: + ---- берет массив из 2 и более итераций и использует их поэлементно.Это дает их соответствующие элементы вместе и прекращается, когда любой из них сделан.Приведенный выше пример является довольно сложным, но имеет то преимущество, что не изобретен.Эти виды сценариев важны, но относительно редки, и непосредственное использование итераторов является скорее исключением, чем правилом.
ответил Aluan Haddad 24 AMpTue, 24 Apr 2018 05:54:23 +030054Tuesday 2018, 05:54:23

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132