Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Array
  6. flat()

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

View in EnglishAlways switch to English

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 ⁨Januar 2020⁩.

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

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

depthOptional

Die Tiefenebene, die angibt, bis zu welcher Tiefe eine verschachtelte Array-Struktur abgeflacht werden soll. Standardmäßig 1.

Rückgabewert

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

Beschreibung

Die Methodeflat() ist einekopierende Methode. Sie verändertthis nicht, sondern gibt eineflache Kopie zurück, die dieselben Elemente wie das ursprüngliche Array enthält.

Die Methodeflat() entfernt leere Plätze, wenn das Array, das abgeflacht wird,spärlich ist. Wenn beispielsweisedepth 1 ist, werden sowohl leere Plätze im Stamm-Array als auch in der ersten Ebene der verschachtelten Arrays ignoriert, aber leere Plätze in weiter verschachtelten Arrays bleiben mit den Arrays selbst erhalten.

Die Methodeflat() istgenerisch. Sie erwartet nur, dass derthis-Wert einelength-Eigenschaft und integer-beschriftete Eigenschaften hat. Die Elemente müssen 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 spärlichen Arrays

Die Methodeflat() entferntleere Plätze 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 Methodeflat() liest dielength-Eigenschaft vonthis und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nicht-negative Ganzzahl kleiner alslength ist. Wenn das Element kein Array ist, wird es direkt an das Ergebnis angehängt. Wenn das Element ein Array ist, wird es entsprechend demdepth-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

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.flat

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp