TGViewer
Angular Meetup Angular Meetup @angular_meetup · 138 subscribers
Post #98 197
#blog
Статья о проблеме "превращения всего в массивы JS", что внутри:
Проблема:
Традиционная обработка массивов в JS (через map, filter, slice) — тяжеловесная, потому что:
- Создаются множество промежуточных массивов
- Обрабатываются все элементы, даже если нужны только первые несколько
- Происходит лишняя работа, особенно на больших данных
Пример:
const visibleItems = items
.filter(isVisible)
.map(transform)
.slice(0, 10);

Здесь сначала фильтруются все элементы, потом преобразуются, и только потом берутся первые 10 (и каждая итерация создает новый массив).
Решение:
Использовать итераторы с lazy методами — values(), filter, map, take, toArray.
Пример с итератором:
const visibleItems = items
.values()
.filter(isVisible)
.map(transform)
.take(10)
.toArray();

Здесь обработка элементов происходит по одному, и останавливается после первых 10 найденных.
Это экономит память и процессорное время.
Польза в UI и асинхронных сценариях:
- Виртуализованные списки
- Бесконечный скролл
- Потоковая обработка данных
- Эффективная работа с большими наборами данных
Важно:
Итераторы не заменяют массивы полностью.
Они не подходят, если нужен прямой доступ к элементам (например, items[5]) или мутации.
Поддержка:
Современные браузеры и Node.js 22+.

Статья - https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/
Allthingssmitty Stop turning everything into arrays (and do less work instead) - Matt Smith Do less work in JavaScript: lazy data pipelines with iterator helpers instead of arrays.
  • 👍 4
  • ❤ 1
More from @angular_meetup
  1. Sep 22, 2026#blog Сегодня посмотрим статью об адаптивных iframe в Chrome 154: ▪Новая возможность: Chro…
  2. Sep 14, 2026#blog Знаю, что сама тема не нова, но это не делает её неактуальной. Сегодня посмотрим ста…
  3. Aug 21, 2026#blog Вышел релиз Chrome 153 beta. Что в нем можно найти: -Особенность релиза: Chrome 153…
  4. Aug 11, 2026#blog Сегодня - статья о том, как стандарт Baseline помогает уменьшить размер JavaScript-б…
  5. Aug 3, 2026#blog Сегодня посмотрим на новый HTML элемент <usermedia>: - Новый элемент: Доступен в Chr…
  6. Jul 14, 2026#blog В июне был опубликован RFC с методом QUERY в HTTP (и почти одновременно он был добав…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →