Вебсправочник
Справочник JavaScript

Array.flatMap(): преобразование в ноль или несколько элементов

Метод flatMap применяет преобразование к каждому элементу и раскрывает возвращённые массивы на один уровень.

Назначение

Метод flatMap применяет преобразование к каждому элементу и раскрывает возвращённые массивы на один уровень.

Как это работает

Функция может вернуть пустой массив для пропуска, один элемент в массиве или несколько элементов. Раскрытие ограничено одним уровнем, поэтому глубокие вложенные структуры сохраняются.

Пример

const values=[-1,2,3];
const result=values.flatMap(n=>n<0?[]:[n,n*n]);
console.assert(JSON.stringify(result)==="[2,4,3,9]");

Что должно получиться

Отрицательное значение исчезло через пустой массив, а каждое положительное породило два результата. Порядок результатов следует исходному порядку обработки.

Граница применения и частая ошибка

Не используйте flatMap только ради модного сокращения. Если результат всегда один к одному и вложенности нет, обычный map яснее описывает намерение.

Самостоятельная проверка

Измените условие так, чтобы отрицательные числа пропускались, а положительные давали число и его квадрат. Проверьте пустой список и ноль отдельно.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.