Виталий Котов
Как работает метод 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 ]
Карта развития разработчика
Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile