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 2016.
Die fill()
-Methode von Array
-Instanzen ändert alle Elemente innerhalb eines Indexbereichs in einem Array in einen statischen Wert. Sie gibt das modifizierte Array zurück.
Probieren Sie es aus
const array1 = [1, 2, 3, 4];
// Fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// Expected output: Array [1, 2, 0, 0]
// Fill with 5 from position 1
console.log(array1.fill(5, 1));
// Expected output: Array [1, 5, 5, 5]
console.log(array1.fill(6));
// Expected output: Array [6, 6, 6, 6]
Syntax
fill(value)
fill(value, start)
fill(value, start, end)
Parameter
value
-
Wert, mit dem das Array gefüllt wird. Beachten Sie, dass alle Elemente im Array genau diesen Wert haben werden: Wenn
value
ein Objekt ist, referenziert jeder Slot im Array dieses Objekt. start
Optional-
Index auf Basis von Null, ab dem das Füllen beginnt, konvertiert in eine Ganzzahl.
- Ein negativer Index zählt rückwärts vom Ende des Arrays — wenn
-array.length <= start < 0
, wirdstart + array.length
verwendet. - Wenn
start < -array.length
oderstart
weggelassen wird, wird0
verwendet. - Wenn
start >= array.length
, wird kein Index gefüllt.
- Ein negativer Index zählt rückwärts vom Ende des Arrays — wenn
end
Optional-
Index auf Basis von Null, an dem das Füllen endet, konvertiert in eine Ganzzahl.
fill()
füllt bis, aber nicht einschließlichend
.- Ein negativer Index zählt rückwärts vom Ende des Arrays — wenn
-array.length <= end < 0
, wirdend + array.length
verwendet. - Wenn
end < -array.length
, wird0
verwendet. - Wenn
end >= array.length
oderend
weggelassen wird, wirdarray.length
verwendet, wodurch alle Indizes bis zum Ende gefüllt werden. - Wenn
end
eine Position vor oder an der durchstart
implizierten Position angibt, wird nichts gefüllt.
- Ein negativer Index zählt rückwärts vom Ende des Arrays — wenn
Rückgabewert
Das modifizierte Array, gefüllt mit value
.
Beschreibung
Die fill()
-Methode ist eine mutierende Methode. Sie ändert nicht die Länge von this
, aber sie wird den Inhalt von this
verändern.
Die fill()
-Methode füllt auch leere Slots in sparse-Arrays mit value
.
Die fill()
-Methode ist generisch. Sie erwartet lediglich, dass der this
-Wert eine length
-Eigenschaft hat. Obwohl Strings auch array-ähnlich sind, ist diese Methode bei ihnen nicht anwendbar, da Strings unveränderlich sind.
Hinweis:
Die Verwendung von Array.prototype.fill()
in einem leeren Array (length = 0
) würde es nicht modifizieren, da das Array nichts hat, das modifiziert werden könnte.
Um Array.prototype.fill()
beim Deklarieren eines Arrays zu verwenden, stellen Sie sicher, dass das Array eine Länge ungleich Null 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 eine Matrix aus Einsen erstellt werden kann, ähnlich der ones()
-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]); // 10
console.log(arr[1][0]); // 1
console.log(arr[2][0]); // 1
Verwendung von fill(), um ein leeres Array zu befüllen
Dieses Beispiel zeigt, wie ein Array befüllt wird, indem alle Elemente auf einen bestimmten Wert gesetzt werden. Der end
-Parameter muss nicht angegeben werden.
const tempGirls = Array(5).fill("girl", 0);
Beachten Sie, dass das Array ursprünglich ein sparse array war, für das keine Indizes zugewiesen wurden. fill()
kann dieses Array trotzdem füllen.
Aufruf von fill() auf Nicht-Array-Objekten
Die fill()
-Methode liest die length
-Eigenschaft von this
aus und setzt den Wert jeder integer-indizierten Eigenschaft von start
bis end
.
const arrayLike = { length: 2 };
console.log(Array.prototype.fill.call(arrayLike, 1));
// { '0': 1, '1': 1, length: 2 }
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-array.prototype.fill |
Browser-Kompatibilität
BCD tables only load in the browser