Array.prototype.flat()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Метод flat()
экземпляров Array
возвращает новый массив, в котором все элементы вложенных подмассивов рекурсивно "подняты" на указанный уровень.
Синтаксис
js
flat()
flat(depth)
Параметры
depth
Необязательный-
Указывает, на сколько уровней вложенности уменьшается мерность исходного массива. По умолчанию 1.
Возвращаемое значение
Новый массив с объединёнными в него подмассивами.
Примеры
Уплощение вложенных массивов
js
const arr1 = [1, 2, [3, 4]];
arr1.flat();
// [1, 2, 3, 4]
const arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]
const arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]
const arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
arr4.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Использование flat() для разреженных массивов
Метод flat()
удаляет пустые слоты в массивах:
js
const arr5 = [1, 2, , 4, 5];
console.log(arr5.flat()); // [1, 2, 4, 5]
const array = [1, , 3, ["a", , "c"]];
console.log(array.flat()); // [ 1, 3, "a", "c" ]
const array2 = [1, , 3, ["a", , ["d", , "e"]]];
console.log(array2.flat()); // [ 1, 3, "a", ["d", empty, "e"] ]
console.log(array2.flat(2)); // [ 1, 3, "a", "d", "e"]
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-array.prototype.flat |
Совместимость с браузерами
BCD tables only load in the browser