Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Array.prototype.fill()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Diefill() Methode vonArray Instanzen ändert alle Elemente innerhalb eines Indexbereichs in einem Array zu einem statischen Wert. Sie gibt das modifizierte Array zurück.
In diesem Artikel
Probieren Sie es aus
const array = [1, 2, 3, 4];// Fill with 0 from position 2 until position 4console.log(array.fill(0, 2, 4));// Expected output: Array [1, 2, 0, 0]// Fill with 5 from position 1console.log(array.fill(5, 1));// Expected output: Array [1, 5, 5, 5]console.log(array.fill(6));// Expected output: Array [6, 6, 6, 6]Syntax
fill(value)fill(value, start)fill(value, start, end)Parameter
valueWert, mit dem das Array gefüllt werden soll. Beachten Sie, dass alle Elemente im Array genau diesen Wert haben werden: wenn
valueein Objekt ist, wird jeder Platz im Array auf dieses Objekt verweisen.startOptionalDer nullbasierte Index, an dem das Füllen beginnt,konvertiert in eine Ganzzahl.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= start < 0, wirdstart + array.lengthverwendet. - Wenn
start < -array.lengthoderstartweggelassen wird, wird0verwendet. - Wenn
start >= array.length, wird kein Index gefüllt.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
endOptionalDer nullbasierte Index, an dem das Füllen endet,konvertiert in eine Ganzzahl.
fill()füllt bis, aber nicht einschließlichend.- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= end < 0, wirdend + array.lengthverwendet. - Wenn
end < -array.length, wird0verwendet. - Wenn
end >= array.lengthoderendweggelassen oderundefinedist, wirdarray.lengthverwendet, wodurch alle Indizes bis zum Ende gefüllt werden. - Wenn
endeine Position vor oder an der Position angibt, diestartangibt, wird nichts gefüllt.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
Rückgabewert
Das modifizierte Array, gefüllt mitvalue.
Beschreibung
Diefill() Methode ist einemutierende Methode. Sie verändert nicht die Länge vonthis, aber sie wird den Inhalt vonthis ändern.
Diefill() Methode füllt auch leere Stellen insparse Arrays mitvalue.
Diefill() Methode istgenerisch. Sie erwartet nur, dass derthis Wert einelength Eigenschaft hat. Obwohl Strings auch array-ähnlich sind, ist diese Methode nicht geeignet, um auf ihnen angewendet zu werden, da Strings unveränderlich sind.
Hinweis:Die Verwendung vonArray.prototype.fill() auf einem leeren Array (length = 0) würde es nicht modifizieren, da das Array nichts zu modifizieren hat.UmArray.prototype.fill() beim Deklarieren eines Arrays zu verwenden, stellen Sie sicher, dass das Array eine Nicht-Null-length hat.Siehe Beispiel.
Beispiele
>Verwendung von fill()
console.log([1, 2, 3].fill(4)); // [4, 4, 4]console.log([1, 2, 3].fill(4, 1)); // [1, 4, 4]console.log([1, 2, 3].fill(4, 1, 2)); // [1, 4, 3]console.log([1, 2, 3].fill(4, 1, 1)); // [1, 2, 3]console.log([1, 2, 3].fill(4, 3, 3)); // [1, 2, 3]console.log([1, 2, 3].fill(4, -3, -2)); // [4, 2, 3]console.log([1, 2, 3].fill(4, NaN, NaN)); // [1, 2, 3]console.log([1, 2, 3].fill(4, 3, 5)); // [1, 2, 3]console.log(Array(3).fill(4)); // [4, 4, 4]// A single object, referenced by each slot of the array:const arr = Array(3).fill({}); // [{}, {}, {}]arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]Verwendung von fill(), um eine Matrix aus Einsen zu erstellen
Dieses Beispiel zeigt, wie man eine Matrix aus Einsen erstellt, ähnlich derones() Funktion von Octave oder MATLAB.
const arr = new Array(3);for (let i = 0; i < arr.length; i++) { arr[i] = new Array(4).fill(1); // Creating an array of size 4 and filled of 1}arr[0][0] = 10;console.log(arr[0][0]); // 10console.log(arr[1][0]); // 1console.log(arr[2][0]); // 1Verwendung von fill(), um ein leeres Array zu füllen
Dieses Beispiel zeigt, wie man ein Array füllt, indem alle Elemente auf einen bestimmten Wert gesetzt werden. Derend Parameter muss nicht angegeben werden.
const tempGirls = Array(5).fill("girl", 0);Beachten Sie, dass das Array ursprünglich einsparse array ohne zugewiesene Indizes war.fill() ist dennoch in der Lage, dieses Array zu füllen.
Aufrufen von fill() auf Nicht-Array-Objekten
Diefill() Methode liest dielength Eigenschaft vonthis und setzt den Wert jeder ganzzahligen Schlüssel-Eigenschaft vonstart bisend.
const arrayLike = { length: 2 };console.log(Array.prototype.fill.call(arrayLike, 1));// { '0': 1, '1': 1, length: 2 }Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.fill> |