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.
Die fill()
-Methode von Array
-Instanzen ändert alle Elemente innerhalb eines Indexbereichs in einem Array zu einem 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 exakt diesen Wert haben werden: Wenn
value
ein Objekt ist, wird in jedem Slot des Arrays auf dieses Objekt verwiesen. start
Optional-
Nullbasierter Index, an dem das Füllen beginnt, in eine Ganzzahl umgewandelt.
- Ein negativer Index zählt vom Ende des Arrays zurück — 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 vom Ende des Arrays zurück — wenn
end
Optional-
Nullbasierter Index, an dem das Füllen endet, in eine Ganzzahl umgewandelt.
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.length
verwendet. - Wenn
end < -array.length
, wird0
verwendet. - Wenn
end >= array.length
oderend
weggelassen oderundefined
ist, wirdarray.length
verwendet, wodurch alle Indizes bis zum Ende gefüllt werden. - Wenn
end
eine Position vor oder an der vonstart
implizierten Position ergibt, wird nichts gefüllt.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
Rückgabewert
Das modifizierte Array, gefüllt mit value
.
Beschreibung
Die fill()
-Methode ist eine ändernde Methode. Sie verändert nicht die Länge von this
, aber sie wird den Inhalt von this
ändern.
Die fill()
-Methode füllt auch leere Plätze in spärlichen Arrays mit value
.
Die fill()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft hat. Obwohl Zeichenketten ebenfalls array-ähnlich sind, ist diese Methode nicht geeignet, auf ihnen angewendet zu werden, da Zeichenketten unveränderlich sind.
Hinweis:
Die Verwendung von Array.prototype.fill()
auf einem leeren Array (length = 0
) würde es nicht verändern, da das Array nichts zu verändern hat.
Um Array.prototype.fill()
beim Deklarieren eines Arrays zu verwenden, stellen Sie sicher, dass das Array eine Länge ungleich Null hat.
Beispiel ansehen.
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() zur Erstellung einer Matrix mit nur Einsen
Dieses Beispiel zeigt, wie man eine Matrix mit nur Einsen erstellt, ä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() zum Füllen eines leeren Arrays
Dieses Beispiel zeigt, wie man ein Array füllt und alle Elemente auf einen bestimmten Wert setzt.
Der end
-Parameter muss nicht angegeben werden.
const tempGirls = Array(5).fill("girl", 0);
Beachten Sie, dass das Array anfänglich ein spärliches Array ohne zugewiesene Indizes war. fill()
kann dieses Array dennoch füllen.
Aufrufen von fill() auf Objekten ohne Array-Verhalten
Die fill()
-Methode liest die length
-Eigenschaft von this
und setzt den Wert jeder integer-basierten 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® 2026 Language Specification # sec-array.prototype.fill |