JavaScript | Как вытащить элементы массивов в массивах на один уровень?

Есть массив:

var massiv = [    [7, [[8], 9]],     [4, 5, 6],      [[1, [2], 3]]     ]

Я специально далеко развёл скобки, чтобы было наглядно видно его элементы.

Массив из трёх массивов - JavaScript
Массив из трёх массивов — JavaScript


В нашем массиве 3 элемента. Они тоже являются массивами. На разных уровнях вложенности можно встретить обычные числа.

 

Как распаковать (достать) элементы массивов внутри других массивов на один уровень?

Мы хотим решить именно эту задачу. То есть, если нам при обходе будут попадаться массивы, то мы будем извлекать из них элементы и забрасывать на самый верхний уровень.

Для решения задачи будем использовать метод flat() — Array.prototype.flat ( [ depth ] )

massiv.flat(Infinity)

Вывод в консоль браузера:

Метод flat с infinity - JavaScript
Метод flat с infinity — JavaScript

Слово «FLAT» можно перевести с английского как «ПЛОСКИЙ«. И это самое подходящее слово, т. к. мы по сути выравниваем разные глубины массивов на один уровень (в одну плоскость).

 

Информационные ссылки

JavaScript | Как узнать глубину массива?

JavaScript | Как узнать глубину каждого элемента массива?

JavaScript | Массивы (Array) — https://efim360.ru/javascript-massivy-array/

ECMAScript — Array.prototype.flat ( [ depth ] ) — https://tc39.es/ecma262/#sec-array.prototype.flat

Поделись записью