[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/flat [Back]  [Original]

Array.prototype.flat() - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Array.prototype.flat()

Baseline
Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Januar 2020 browserbergreifend verfgbar.

Die Methode flat() von Array-Instanzen erstellt ein neues Array, in dem alle Unter-Array-Elemente rekursiv bis zur angegebenen Tiefe verkettet werden.

In diesem Artikel

Probieren Sie es aus

const arr1 = [0, 1, 2, [3, 4]];

console.log(arr1.flat());
// expected output: Array [0, 1, 2, 3, 4]

const arr2 = [0, 1, [2, [3, [4, 5]]]];

console.log(arr2.flat());
// expected output: Array [0, 1, 2, Array [3, Array [4, 5]]]

console.log(arr2.flat(2));
// expected output: Array [0, 1, 2, 3, Array [4, 5]]

console.log(arr2.flat(Infinity));
// expected output: Array [0, 1, 2, 3, 4, 5]

Syntax

js
flat()
flat(depth)

Parameter

depth Optional

Die Tiefenebene, die angibt, bis zu welcher Tiefe eine verschachtelte Array-Struktur abgeflacht werden soll. Standardmig 1.

Rckgabewert

Ein neues Array mit den verketteten Unter-Array-Elementen.

Beschreibung

Die Methode flat() ist eine kopierende Methode. Sie verndert this nicht, sondern gibt eine flache Kopie zurck, die dieselben Elemente wie das ursprngliche Array enthlt.

Die Methode flat() entfernt leere Pltze, wenn das Array, das abgeflacht wird, sprlich ist. Wenn beispielsweise depth 1 ist, werden sowohl leere Pltze im Stamm-Array als auch in der ersten Ebene der verschachtelten Arrays ignoriert, aber leere Pltze in weiter verschachtelten Arrays bleiben mit den Arrays selbst erhalten.

Die Methode flat() ist generisch. Sie erwartet nur, dass der this-Wert eine length-Eigenschaft und integer-beschriftete Eigenschaften hat. Die Elemente mssen jedoch Arrays sein, um abgeflacht zu werden.

Beispiele

Verschachtelte Arrays abflachen

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]

Verwenden von flat() auf sprlichen Arrays

Die Methode flat() entfernt leere Pltze in Arrays:

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

Aufrufen von flat() auf Nicht-Array-Objekten

Die Methode flat() liest die length-Eigenschaft von this und greift dann auf jede Eigenschaft zu, deren Schlssel eine nicht-negative Ganzzahl kleiner als length ist. Wenn das Element kein Array ist, wird es direkt an das Ergebnis angehngt. Wenn das Element ein Array ist, wird es entsprechend dem depth-Parameter abgeflacht.

js
const arrayLike = {
  length: 3,
  0: [1, 2],
  // Array-like objects aren't flattened
  1: { length: 2, 0: 3, 1: 4 },
  2: 5,
  3: 3, // ignored by flat() since length is 3
};
console.log(Array.prototype.flat.call(arrayLike));
// [ 1, 2, { '0': 3, '1': 4, length: 2 }, 5 ]

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-array.prototype.flat

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page