Помощники итератора стали базовыми Недавно доступны,Помощники итератора стали базовыми Недавно доступны,Помощники итератора стали базовыми Недавно доступны,Помощники итератора стали базовыми Недавно доступны

Джереми Вагнер
Jeremy Wagner

Опубликовано: 1 мая 2025 г.

Если вы пишете JavaScript, то итерации — это то, чем вы часто занимаетесь. Вы либо пишете циклы для работы с массивами, либо используете методы функционального программирования, такие как map , filter и другие подобные методы, для обработки всех видов данных.

Однако одним камнем преткновения при использовании этих методов является то, что они доступны только для массивов. Если вы хотите использовать их в итерации, вам придется преобразовать ее в массив, а затем вызвать нужный вам метод. Это может быть расточительно, или в тех случаях, когда интерпретируемый объект содержит бесконечный набор данных с использованием функций-генераторов , это невозможно. Однако теперь, когда помощники итераторов стали доступны в рамках Baseline Newly, эта возможность наконец-то доступна во всех браузерах.

Как работают помощники итератора?

Помощники итератора предоставляются путем определения новых методов в prototype объекта Iterator . Эти методы соответствуют многим методам функционального программирования, которые вы привыкли использовать, например, map , filter , reduce и другим подобным методам.

Например, вы можете использовать вспомогательный итератор в методе filter для фильтрации элементов списка по содержимому их innerText для коллекции узлов DOM, которое затем можно использовать позже в цикле for :

const posts = document.querySelectorAll("ul#specific-list > li")
  .values()
  .filter(item => item.textContent.includes("kiwi"));

// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
  console.log(post.textContent);
}

В предыдущем фрагменте кода вспомогательный метод итератора для filter используется для перебора всех элементов <li> в определенном элементе <ul> . Критерием фильтрации является то, что текстово�� содержимое каждого элемента должно содержать подстроку "kiwi" .

Помощники-итераторы также можно использовать с функциями-генераторами. В этом примере функция-генератор, которая вычисляет факториалы , но использует вспомогательный итератор для фильтрации значений до тех, которые делятся на 8, и записывает первые пять отфильтрованных значений на консоль:

function* factorials (n) {
  let result = 1;

  for (let i = 1; i <= n; i++) {
    result *= i;

    yield result;
  }
}

const filteredFactorials = factorials(128).filter(x => x % 8 === 0);

console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);

В частности, предыдущий фрагмент кода является примером того, что было бы невозможно с помощью помощников итераторов, поскольку число факториалов бесконечно, и иначе вы не сможете преобразовать их в массив!

В зависимости от вашей ситуации помощники-итераторы имеют большой потенциал — и они доступны для каждого из этих итерируемых методов:

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

,

Джереми Вагнер
Jeremy Wagner

Опубликовано: 1 мая 2025 г.

Если вы пишете JavaScript, то итерации — это то, чем вы часто занимаетесь. Вы либо пишете циклы для работы с массивами, либо используете методы функционального программирования, такие как map , filter и другие подобные методы, для обработки всех видов данных.

Однако одним камнем преткновения при использовании этих методов является то, что они доступны только для массивов. Если вы хотите использовать их в итерации, вам придется преобразовать ее в массив, а затем вызвать нужный вам метод. Это может быть расточительно, или в тех случаях, когда интерпретируемый объект содержит бесконечный набор данных с использованием функций-генераторов , это невозможно. Однако теперь, когда помощники итераторов стали доступны в рамках Baseline Newly, эта возможность наконец-то доступна во всех браузерах.

Как работают помощники итератора?

Помощники итератора предоставляются путем определения новых методов в prototype объекта Iterator . Эти методы соответствуют многим методам функционального программирования, которые вы привыкли использовать, например, map , filter , reduce и другим подобным методам.

Например, вы можете использовать вспомогательный итератор в методе filter для фильтрации элементов списка по содержимому их innerText для коллекции узлов DOM, которое затем можно использовать позже в цикле for :

const posts = document.querySelectorAll("ul#specific-list > li")
  .values()
  .filter(item => item.textContent.includes("kiwi"));

// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
  console.log(post.textContent);
}

В предыдущем фрагменте кода вспомогательный метод итератора для filter используется для перебора всех элементов <li> в определенном элементе <ul> . Критерием фильтрации является то, что текстовое содержимое каждого элемента должно содержать подстроку "kiwi" .

Помощники-итераторы также можно использовать с функциями-генераторами. В этом примере функция-генератор, которая вычисляет факториалы , но использует вспомогательный итератор для фильтрации значений до тех, которые делятся на 8, и записывает первые пять отфильтрованных значений на консоль:

function* factorials (n) {
  let result = 1;

  for (let i = 1; i <= n; i++) {
    result *= i;

    yield result;
  }
}

const filteredFactorials = factorials(128).filter(x => x % 8 === 0);

console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);

В частности, предыдущий фрагмент кода является примером того, что было бы невозможно с помощью помощников итераторов, поскольку число факториалов бесконечно, и иначе вы не сможете преобразовать их в массив!

В зависимости от вашей ситуации помощники-итераторы имеют большой потенциал — и они доступны для каждого из этих итерируемых методов:

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

,

Джереми Вагнер
Jeremy Wagner

Опубликовано: 1 мая 2025 г.

Если вы пишете JavaScript, то итерации — это то, чем вы часто занимаетесь. Вы либо пишете циклы для работы с массивами, либо используете методы функционального программирования, такие как map , filter и другие подобные методы, для обработки всех видов данных.

Однако одним камнем преткновения при использовании этих методов является то, что они доступны только для массивов. Если вы хотите использовать их в итерации, вам придется преобразовать ее в массив, а затем вызвать нужный вам метод. Это может быть расточительно, или в тех случаях, когда интерпретируемый объект содержит бесконечный набор данных с использованием функций-генераторов , это невозможно. Однако теперь, когда помощники итераторов стали доступны в рамках Baseline Newly, эта возможность наконец-то доступна во всех браузерах.

Как работают помощники итераторов?

Помощники итератора предоставляются путем определения новых методов в prototype объекта Iterator . Эти методы соответствуют многим методам функционального программирования, которые вы привыкли использовать, например, map , filter , reduce и другим подобным методам.

Например, вы можете использовать вспомогательный итератор в методе filter для фильтрации элементов списка по содержимому их innerText для коллекции узлов DOM, которое затем можно использовать позже в цикле for :

const posts = document.querySelectorAll("ul#specific-list > li")
  .values()
  .filter(item => item.textContent.includes("kiwi"));

// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
  console.log(post.textContent);
}

В предыдущем фрагменте кода вспомогательный метод итератора для filter используется для перебора всех элементов <li> в определенном элементе <ul> . Критерием фильтрации является то, что текстовое содержимое каждого элемента должно содержать подстроку "kiwi" .

Помощники-итераторы также можно использовать с функциями-генераторами. В этом примере функция-генератор, которая вычисляет факториалы , но использует вспомогательный итератор для фильтрации значений до тех, которые делятся на 8, и записывает первые пять отфильтрованных значений на консоль:

function* factorials (n) {
  let result = 1;

  for (let i = 1; i <= n; i++) {
    result *= i;

    yield result;
  }
}

const filteredFactorials = factorials(128).filter(x => x % 8 === 0);

console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);

В частности, предыдущий фрагмент кода яв��яется примером того, что было бы невозможно с помощью помощников итераторов, поскольку число факториалов бесконечно, и иначе вы не сможете преобразовать их в массив!

В зависимости от вашей ситуации помощники-итераторы имеют большой потенциал — и они доступны для каждого из этих итерируемых методов:

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

,

Джереми Вагнер
Jeremy Wagner

Опубликовано: 1 мая 2025 г.

Если вы пишете JavaScript, то итерации — это то, чем вы часто занимаетесь. Вы либо пишете циклы для работы с массивами, либо используете методы функционального программирования, такие как map , filter и другие подобные методы, для обработки всех видов данных.

Однако одним камнем преткновения при использовании этих методов является то, что они доступны только для массивов. Если вы хотите использовать их в итерации, вам придется преобразовать ее в массив, а затем вызвать нужный вам метод. Это может быть расточительно, или в тех случаях, когда интерпретируемый объект содержит бесконечный набор данных с использованием функций-генераторов , это невозможно. Однако теперь, когда помощники итераторов стали доступны в рамках Baseline Newly, эта возможность наконец-то доступна во всех браузерах.

Как работают помощники итератора?

Помощники итератора предоставляются путем определения новых методов в prototype объекта Iterator . Эти методы соответствуют многим методам функционального программирования, которые вы привыкли использовать, например, map , filter , reduce и другим подобным методам.

Например, вы можете использовать вспомогательный итератор в методе filter для фильтрации элементов списка по содержимому их innerText для коллекции узлов DOM, которое затем можно использовать позже в цикле for :

const posts = document.querySelectorAll("ul#specific-list > li")
  .values()
  .filter(item => item.textContent.includes("kiwi"));

// For-of loops can only be used on iterables, which `posts` is!
for (const post of posts) {
  console.log(post.textContent);
}

В предыдущем фрагменте кода вспомогательный метод итератора для filter используется для перебора всех элементов <li> в определенном элементе <ul> . Критерием фильтрации является то, что текстовое содержимое каждого элемент�� должно содержать подстроку "kiwi" .

Помощники-итераторы также можно использовать с функциями-генераторами. В этом примере функция-генератор, которая вычисляет факториалы , но использует вспомогательный итератор для фильтрации значений до значений, кратных 8, и записывает первые пять отфильтрованных значений на консоль:

function* factorials (n) {
  let result = 1;

  for (let i = 1; i <= n; i++) {
    result *= i;

    yield result;
  }
}

const filteredFactorials = factorials(128).filter(x => x % 8 === 0);

console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);
console.log(filteredFactorials.next().value);

В частности, предыдущий фрагмент кода является примером того, что было бы невозможно с помощью помощников итераторов, поскольку число факториалов бесконечно, и иначе вы не сможете преобразовать их в массив!

В зависимости от вашей ситуации помощники-итераторы имеют большой потенциал — и они доступны для каждого из этих итерируемых методов:

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