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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.