логотип PurpleSchool

Как работает метод flat() - JavaScript

Автор

Виталий Котов

Метод flat() возвращает новый массив, сократив его вложенность до указанного уровня.

// 3 вложенных массива
let numbers = [1, 2, [3, 4, [5, 6, [7, 8]]]];

// сокращаем вложенность массива на 2 уровня
let flattenArray = numbers.flat(2);

// новый сокращённый массив
console.log(flattenArray);

// Вывод в консоль:
// [ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]

Синтаксис flat()

Синтаксис метода flat() следующий:

arr.flat(depth);

Где arr - это массив.

Параметры flat()

Метод flat() принимает:

  • depth
    • целое число, указывающее на сколько уровней сокращается вложенность исходного массива. Его значение по умолчанию равно 1.

Возвращаемое значение flat()

Возвращает сокращённый массив с объединёнными в нём элементами подмассива.

Примечания: Метод flat():

не изменяет исходный массив. удаляет пустые элементы массива

Примеры

Пример 1: Использование метода flat()

// 3 вложенных массива
let numbers = [1, 2, [3, 4, [5, 6, [7, 8]]]];

// сокращаем вложенность массива на 2 уровня
let flattenArray = numbers.flat(2);

// новый сокращённый массив
console.log(flattenArray);

Вывод в консоль:

[ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]

В приведенном выше примере мы использовали метод flat() для сокращения вложенности массива numbers на 2 уровни.

numbers.flat(2) сокращает вложенность массива numbers и возвращает массив только с одним подмассивом, т.е. [ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]

Пример 2: Метод flat() без указания аргумента

// вложенный массив
let array1 = [1, [2, 3, 4], 5];

// без передачи аргумента в метод flat()
let flattenArray = array1.flat();

console.log(flattenArray);

Вывод в консоль:

[ 1, 2, 3, 4, 5 ]

Здесь мы не передали никакого аргумента depth в метод flat().

По умолчанию аргумент depth равен 1, поэтому array1.flat() сокращает вложенность массива array1 на 1 уровень.

Пример 2: Метод flat() для удаления пустых элементов

// массив с пустым элементом
let array_with_holes = [1, , 3];

// удаляем пустые элементы в массиве
let flattedArray = array_with_holes.flat();

console.log(flattedArray); // [ 1, 3 ]

Вывод в консоль:

[ 1, 3 ]
изображение курса

Основы JavaScript

Антон Ларичев
иконка часов18 часов лекций
иконка зведочки рейтинга4.8
Frontend
Backend
Mobile
Основы JavaScript