Разплющивание вложенного массива — это преобразование многомерного массива в одноуровневый массив. JavaScript предлагает несколько подходов для этого.
Самый простой современный подход использует встроенный метод flat():
arr.flat(Infinity);
Передача Infinity в качестве аргумента depth гарантирует, что все уровни вложенности будут разплющены, независимо от того, насколько глубоко вложен массив.
Для окружений, где flat() недоступен, или когда тебе нужен больший контроль, рекурсивный reduce — хороший вариант:
function flatten(arr) {
return arr.reduce(
(acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val),
[]
);
}
reduce() проходит по каждому элементу, собирая массив-аккумуляторArray.isArray(val) проверяет, является ли текущий элемент вложенным массивомflat(Infinity) — лаконичный и читаемый вариант — используй его в современных окруженияхМетод flat() с аргументом Infinity в качестве глубины будет развернуть все уровни вложенности независимо от того, насколько глубоко вложена структура массива.
Новый — ещё не проверен сообществом
Вы