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.fill()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.

Die Methode fill() von Array-Instanzen ändert alle Elemente innerhalb eines Indexbereichs in einem Array auf einen festen Wert. Sie gibt das geänderte Array zurück.

Probieren Sie es aus

const array = [1, 2, 3, 4];

// Fill with 0 from position 2 until position 4
console.log(array.fill(0, 2, 4));
// Expected output: Array [1, 2, 0, 0]

// Fill with 5 from position 1
console.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

js
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 erhalten: Wenn value ein Objekt ist, verweist jede Position im Array auf dieses Objekt.

start Optional

Nullbasierter Index, ab dem das Array gefüllt wird, in eine Ganzzahl umgewandelt.

  • Ein negativer Index zählt vom Ende des Arrays zurück – wenn -array.length <= start < 0, wird start + array.length verwendet.
  • Wenn start < -array.length gilt oder start weggelassen wird, wird 0 verwendet.
  • Wenn start >= array.length gilt, wird kein Index gefüllt.
end Optional

Nullbasierter Index, an dem das Füllen endet, in eine Ganzzahl umgewandelt. fill() füllt bis zum Index end, aber nicht einschließlich dieses Index.

  • Ein negativer Index zählt vom Ende des Arrays zurück – wenn -array.length <= end < 0, wird end + array.length verwendet.
  • Wenn end < -array.length gilt, wird 0 verwendet.
  • Wenn end >= array.length gilt oder end weggelassen wird oder undefined ist, wird array.length verwendet. Dadurch werden alle Indizes bis zum Ende gefüllt.
  • Wenn end eine Position vor oder an der durch start bestimmten Position bezeichnet, wird nichts gefüllt.

Rückgabewert

Das geänderte, mit value gefüllte Array.

Beschreibung

Die Methode fill() ist eine verändernde Methode. Sie ändert die Länge von this nicht, verändert aber dessen Inhalt.

Die Methode fill() füllt auch leere Positionen in dünn besetzten Arrays mit value.

Die Methode fill() ist generisch. Sie setzt lediglich voraus, dass der Wert von this eine length-Eigenschaft besitzt. Obwohl Strings ebenfalls arrayähnlich sind, eignet sich diese Methode nicht für sie, da Strings unveränderlich sind.

Hinweis: Die Verwendung von Array.prototype.fill() auf einem leeren Array (length = 0) verändert es nicht, da das Array keine Elemente enthält, die verändert werden könnten. Wenn Sie Array.prototype.fill() beim Deklarieren eines Arrays verwenden möchten, stellen Sie sicher, dass das Array eine length größer als 0 hat. Siehe Beispiel.

Beispiele

fill() verwenden

js
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" }]

Mit fill() eine Matrix aus Einsen erstellen

Dieses Beispiel zeigt, wie Sie eine Matrix erstellen, deren Werte alle 1 sind, ähnlich der Funktion ones() in Octave oder MATLAB.

js
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

Mit fill() ein leeres Array befüllen

Dieses Beispiel zeigt, wie Sie ein Array befüllen, indem Sie alle Elemente auf einen bestimmten Wert setzen. Der Parameter end muss nicht angegeben werden.

js
const tempGirls = Array(5).fill("girl", 0);

Beachten Sie, dass das Array anfangs ein dünn besetztes Array ohne belegte Indizes war. fill() kann dieses Array dennoch füllen.

fill() für Objekte aufrufen, die keine Arrays sind

Die Methode fill() liest die length-Eigenschaft von this und setzt den Wert jeder Eigenschaft mit einem ganzzahligen Schlüssel von start bis end.

js
const arrayLike = { length: 2 };
console.log(Array.prototype.fill.call(arrayLike, 1));
// { '0': 1, '1': 1, length: 2 }

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-array.prototype.fill

Browser-Kompatibilität

Siehe auch