Array.prototype.with()
Baseline 2023Newly available
Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die with()
-Methode von Array
-Instanzen ist die kopierende Version der Nutzung der Klammer-Notation, um den Wert eines bestimmten Indexes zu ändern. Sie gibt ein neues Array zurück, bei dem das Element am angegebenen Index durch den angegebenen Wert ersetzt wurde.
Syntax
arrayInstance.with(index, value)
Parameter
index
-
Null-basierter Index, an dem das Array geändert werden soll, in eine Ganzzahl konvertiert.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= index < 0
, wirdindex + array.length
verwendet. - Wenn der Index nach der Normalisierung außerhalb der Grenzen liegt, wird ein
RangeError
ausgelöst.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
value
-
Ein beliebiger Wert, der dem gegebenen Index zugewiesen werden soll.
Rückgabewert
Ein neues Array mit dem Element am index
, das durch value
ersetzt wurde.
Ausnahmen
RangeError
-
Wird ausgelöst, wenn
index >= array.length
oderindex < -array.length
.
Beschreibung
Die with()
-Methode ändert den Wert eines bestimmten Indexes im Array und gibt ein neues Array zurück, bei dem das Element am angegebenen Index durch den angegebenen Wert ersetzt wurde. Das ursprüngliche Array wird nicht verändert. Dies ermöglicht das Verkettung von Array-Methoden bei Manipulationen.
Durch die Kombination von with()
mit at()
, können Sie sowohl mit negativen Indizes auf ein Array schreiben als auch lesen.
Die with()
-Methode erzeugt niemals ein dünn besetztes Array. Wenn das Quellarray dünn besetzt ist, werden die leeren Plätze im neuen Array mit undefined
ersetzt.
Die with()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft und integer-indexierte Eigenschaften hat.
Beispiele
Erstellen eines neuen Arrays mit einem einzelnen geänderten Element
const arr = [1, 2, 3, 4, 5];
console.log(arr.with(2, 6)); // [1, 2, 6, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]
Verkettung von Array-Methoden
Mit der with()
-Methode können Sie ein einzelnes Element in einem Array aktualisieren und anschließend andere Array-Methoden anwenden.
const arr = [1, 2, 3, 4, 5];
console.log(arr.with(2, 6).map((x) => x ** 2)); // [1, 4, 36, 16, 25]
Verwendung von with() auf dünn besetzten Arrays
Die with()
-Methode erzeugt immer ein dicht besetztes Array.
const arr = [1, , 3, 4, , 6];
console.log(arr.with(0, 2)); // [2, undefined, 3, 4, undefined, 6]
Aufrufen von with() auf Nicht-Array-Objekten
Die with()
-Methode erstellt und gibt ein neues Array zurück. Sie liest die length
-Eigenschaft von this
und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nichtnegative Ganzzahl kleiner als length
ist. Während auf jede Eigenschaft von this
zugegriffen wird, wird das Array-Element mit einem Index, der dem Schlüssel der Eigenschaft entspricht, auf den Wert der Eigenschaft gesetzt. Schließlich wird der Array-Wert bei index
auf value
gesetzt.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
3: 3, // ignored by with() since length is 3
};
console.log(Array.prototype.with.call(arrayLike, 0, 1));
// [ 1, undefined, 4 ]
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-array.prototype.with |
Browser-Kompatibilität
BCD tables only load in the browser