flat() и flatMap() — это оба метода массивов, которые работают с разворачиванием вложенных массивов, но они служат разным целям и имеют отличающееся поведение.
flat()flat(depth) создает новый массив, объединяя элементы подмассивов до указанного уровня глубины.
1, если аргумент не переданflat(Infinity) для полного разворачивания глубоко вложенных массивов[1, [2, [3]]].flat(); // [1, 2, [3]]
[1, [2, [3]]].flat(Infinity); // [1, 2, 3]
flatMap()flatMap() объединяет преобразование и разворачивание в одну операцию. Он применяет колбэк к каждому элементу и затем разворачивает результат на ровно один уровень.
[1, 2, 3].flatMap(x => [x, x * 2]);
// [1, 2, 2, 4, 3, 6]
flat() только разворачивает, а flatMap() преобразует и разворачиваетflat() поддерживает настраиваемую глубину; flatMap() всегда разворачивает только один уровеньflatMap() эффективнее, чем цепочка map().flat(1), так как не создаёт промежуточный массивflat(), когда нужно разворнуть вложенные массивы без преобразования, особенно на нескольких уровнях глубиныflatMap(), когда нужно преобразовать элементы в массивы и сразу же разворнуть результат — часто используется для расширения или фильтрации данных за один проходХотя flatMap() функционально эквивалентен map().flat(1), он — предпочтительный выбор для комбинированных операций благодаря лучшей производительности. Используй flat(), когда требуется более глубокое или безусловное разворачивание.
Метод flat() модифицирует исходный массив на месте и возвращает ссылку на исходный массив после развертывания.
Новый — ещё не проверен сообществом
Вы