Это моя серия статей о понимании JavaScript и его удивительных возможностях. Я разработчик javascript. Я пытаюсь узнать больше о его новых и расширенных функциях. Поговорим сегодня о итерациях.

Итак, что такое Iterables?

Предположим, мы хотим перебрать массив или строку, мы можем использовать массив итераторов, доступных для массива. forEach, for… of, старый добрый цикл for, цикл while и т. д. и т. д. Если мы хотим перебрать набор, диапазон любых таких объектов, мы должны использовать итератор, доступный для него. Даже не все типы данных можно повторять. Здесь на сцену выходят итерируемые объекты. Мы можем сделать итерируемыми данные любого типа. Это означает, что мы можем использовать цикл for… of для его перебора.

Рассмотрим случайный объект. Это диапазон. У него есть начальная и конечная точки.

var object = {начало: 1, конец: 5}

Мы не можем повторять это. Если мы попробуем for… of цикла, он вернет ошибку ссылки.

Но мы можем реализовать для него итератор. Мы можем добавить метод Symbol.iterator, чтобы сделать его итерируемым объектом. Мы также должны добавить метод next, чтобы цикл работал. Давайте продолжим и добавим их.

Здесь мы видим, что можем перебирать диапазон. Таким образом, мы можем добавить итератор к любому объекту, и он будет доступен для цикла for… of.

По умолчанию строки и массивы повторяются. Мы также можем явно вызывать итерируемые функции, чтобы получить более ясную картину.

Примеры использования

  • Когда мы получаем данные от третьей стороны. Когда мы не знаем тип данных. Мы можем просто упомянуть, что данные должны быть повторяемыми. Третья сторона может создавать данные по своему желанию.
  • Мы можем создать генератор случайных чисел или генератор паролей.
  • Мы можем создать код двухфакторной аутентификации, который создает числа в зависимости от текущей отметки времени.

Теперь у нас есть краткое представление об итерациях. Давайте продолжим и узнаем еще об одной похожей и интересной концепции под названием Генераторы. Потом смешаем их вместе и построим что-нибудь интересное.

Что такое генератор?

Javascript всегда возвращал одно значение из функции. С введением генераторов функция может возвращать несколько значений.

Ключевое слово функции, за которым следует *, представляет функцию генератора. Для возврата нескольких значений требуется помощь ключевого слова yield.

Вот пример

После выполнения каждого yield он ожидает следующей итерации или явного следующего вызова.

Давайте создадим итерации с помощью генераторов.

Давайте изменим итератор, который мы создали для объекта диапазона, чтобы использовать генератор.

Построим что-нибудь интересное.

Давайте попробуем создать очень простой генератор кода. Создает случайное число в зависимости от времени. Каждый код действителен 5 секунд. Итак, в течение 5 секунд мы запрашиваем новый код, он вернет тот же код.

Вот очень простой генератор кода. Логика генерации кода очень проста на основе метки времени. В реальных генераторах кода логика генерации кода будет намного сложнее. Но это может сработать.

Первые 6 раз он вернет тот же код. Скорее всего, они будут работать всего за 5 секунд. В седьмой раз мы выполняем генерацию кода через 6 секунд. Он вернет новый код.

Этот простой генератор кода может генерировать бесконечное количество уникальных кодов в течение 24 часов.

Мы в конце статьи. Спасибо за чтение!