Array.prototype.flat() — javascript | ВебДоки

Метод flat() (площина, плоский) примірників Array створює новий масив шляхом рекурсивного зчеплення, до заданої глибини, всіх підмасивів докупи.

Спробуйте його в дії

Синтаксис

flat()
flat(depth)

Параметри

depth Необов'язкове

Рівень глибини, що задає те, наскільки глибоко вкладена структура підмасивів повинна бути сплощена. Усталено – 1.

Повернене значення

Новий масив, у котрий зчеплено елементи підмасивів.

Опис

Метод flat()копіювальний метод. Він не змінює this, а повертає поверхневу копію, що містить ті самі елементи, що присутні у вихідному масиві.

Метод flat() вилучає порожні комірки, якщо сплощуваний масив є розрідженим. Наприклад, якщо depth – 1, то порожні комірки, як в кореневому масиві, так і в масивах першого рівня вкладеності – ігноруються, але порожні комірки в масивах глибших рівнів зберігаються вкупі з самими цими масивами.

Метод pop() є узагальненим. Він лишень очікує, що значення this матиме властивість length, а також цілочислові властивості. Проте його елементи мусять бути масивами, аби бути сплощеними.

Приклади

Сплощення вкладених масивів

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() вилучає порожні комірки масивів:

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, undefined, ["a", , ["d", , "e"]], null];
console.log(array2.flat()); // [ 1, 3, undefined, "a", ["d", порожньо, "e"], null ]
console.log(array2.flat(2)); // [ 1, 3, undefined, "a", "d", "e", null ]

Виклик flat() на об'єктах-немасивах

Метод flat() зчитує з this властивість length, а тоді звертається до кожної властивості, чий ключ – невід'ємне ціле число, менше за length. Якщо елемент не є масивом, то він безпосередньо додається в кінець результату. Якщо елемент є масивом, то він сплощується згідно з параметром depth.

const arrayLike = {
  length: 3,
  0: [1, 2],
  // Масивоподібні об'єкти не сплощуються
  1: { length: 2, 0: 3, 1: 4 },
  2: 5,
  3: 3, // ігнорується flat(), оскільки length – 3
};
console.log(Array.prototype.flat.call(arrayLike));
// [ 1, 2, { '0': 3, '1': 4, length: 2 }, 5 ]

Специфікації

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js

flat

Chrome Full support 69 Edge Full support 79 Firefox Full support 62 Internet Explorer No support Ні Opera Full support 56 Safari Full support 12 WebView Android Full support 69 Chrome Android Full support 69 Firefox for Android Full support 62 Opera Android Full support 48 Safari on iOS Full support 12 Samsung Internet Full support 10.0 Deno Full support 1.0 Node.js Full support 11.0.0

Дивіться також