HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Несколько месяцев назад в ECMAScript появились два новых метода для работы с массивами: Array.prototype.flat() и Array.prototype.flatMap(). В справочнике MDN на русском языке они отмечены как экспериментальные, а в англоязычной версии справочника предупреждения об особом статусе нет. Давайте посмотрим на .flat() и .flatMap() поближе.</p>
1 <p>Несколько месяцев назад в ECMAScript появились два новых метода для работы с массивами: Array.prototype.flat() и Array.prototype.flatMap(). В справочнике MDN на русском языке они отмечены как экспериментальные, а в англоязычной версии справочника предупреждения об особом статусе нет. Давайте посмотрим на .flat() и .flatMap() поближе.</p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>Метод Array.prototype.flat()</a></li>
3 <ul><li><a>Метод Array.prototype.flat()</a></li>
4 <li><a>Метод Array.prototype.flatMap()</a></li>
4 <li><a>Метод Array.prototype.flatMap()</a></li>
5 </ul><h2>Метод Array.prototype.flat()</h2>
5 </ul><h2>Метод Array.prototype.flat()</h2>
6 <p>Метод Array.prototype.flat() позволяет работать с вложенными массивами. Обратите внимание на код.</p>
6 <p>Метод Array.prototype.flat() позволяет работать с вложенными массивами. Обратите внимание на код.</p>
7 <p>Здесь есть массив array, в который вложен ещё один массив, в котором в свою очередь находится ещё один массив.</p>
7 <p>Здесь есть массив array, в который вложен ещё один массив, в котором в свою очередь находится ещё один массив.</p>
8 <p>Метод Array.prototype.flat() достаёт вложенные массивы и переносит их на уровень, который определяет разработчик. Дефолтный уровень - 1.</p>
8 <p>Метод Array.prototype.flat() достаёт вложенные массивы и переносит их на уровень, который определяет разработчик. Дефолтный уровень - 1.</p>
9 <p>Если глубина вложенности неизвестна, достать вложенные массивы можно с помощью аргумента Infinity. В этом случае метод<a>рекурсивно</a>обходит массив и достает все вложенные элементы независимо от глубины.</p>
9 <p>Если глубина вложенности неизвестна, достать вложенные массивы можно с помощью аргумента Infinity. В этом случае метод<a>рекурсивно</a>обходит массив и достает все вложенные элементы независимо от глубины.</p>
10 <h2>Метод Array.prototype.flatMap()</h2>
10 <h2>Метод Array.prototype.flatMap()</h2>
11 <p>В качестве примера рассмотрим функцию duplicate, которая принимает значение и возвращает массив из двух элементов, каждый из которых повторяет значение. Если применить функцию duplicate к массиву, получим вложенный массив.</p>
11 <p>В качестве примера рассмотрим функцию duplicate, которая принимает значение и возвращает массив из двух элементов, каждый из которых повторяет значение. Если применить функцию duplicate к массиву, получим вложенный массив.</p>
12 <p>Извлечь вложенные массивы можно с помощью flat.</p>
12 <p>Извлечь вложенные массивы можно с помощью flat.</p>
13 <p>В функциональном программировании подобные операции с массивами встречаются часто. Поэтому в ECMAScript появился метод .flatMap(), который упрощает код.</p>
13 <p>В функциональном программировании подобные операции с массивами встречаются часто. Поэтому в ECMAScript появился метод .flatMap(), который упрощает код.</p>
14 <p>Использовать .flatMap() для преобразования массива эффективнее, чем последовательно использовать .flat() и .map(). Поддержку методов Array.prototype.flat() и Array.prototype.flatMap() в браузерах можно проверить<a>по ссылке</a>.</p>
14 <p>Использовать .flatMap() для преобразования массива эффективнее, чем последовательно использовать .flat() и .map(). Поддержку методов Array.prototype.flat() и Array.prototype.flatMap() в браузерах можно проверить<a>по ссылке</a>.</p>
15 <p><em>Это перевод<a>заметки</a>Mathias Bynens.</em></p>
15 <p><em>Это перевод<a>заметки</a>Mathias Bynens.</em></p>