Метод flat

Метод flat уменьшает уровень вложенности многомерного массива. Может либо делать массив одномерным, либо уменьшать мерность на заданное значение.

Синтаксис

javascriptlet newArray = массив.flat(уровень подъема);

Пример

Давайте получим новый массив, не указывая в параметре никакого значения:

javascriptlet arr = ['a', 'b', ['c', 'd']];
let res = arr.flat();

console.log(res);

В результате выполнения кода мы увидим, что подмассивы поднялись на один уровень:

javascript['a', 'b', 'c', 'd']

Пример

А теперь давайте применим метод flat к массиву с двумя уровнями вложенности:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f']]];
let res = arr.flat();

console.log(res);

Результат выполнения кода:

javascript['a', 'b', 'c', 'd', ['e', 'f']]

Пример

Давайте укажем уровень вложенности:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f']]];
let res = arr.flat(2);

console.log(res);

Результат выполнения кода:

javascript['a', 'b', 'c', 'd', 'e', 'f']

Пример

Если мы хотим не заморачиваться с уровнем вложенности, а объединить весь массив, то используем параметр Infinity:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flat(Infinity);

console.log(res);

Результат выполнения кода:

javascript[
  'a', 'b', 'c',
  'd', 'e', 'f',
  'g', 'h', 'i'
]

Смотрите также

  • метод flatMap,
    который возвращает массив из элементов после применения функции