Array.prototype.with()
Baseline 2023
Newly 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 Klammernnotation, um den Wert eines bestimmten Index zu ändern. Sie gibt ein neues Array zurück, bei dem das Element am angegebenen Index durch den angegebenen Wert ersetzt wird.
Syntax
arrayInstance.with(index, value)
Parameter
index
-
Nullbasierter Index, an dem das Array geändert wird, in eine Ganzzahl umgewandelt.
- 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
-
Jeder Wert, der dem angegebenen Index zugewiesen wird.
Rückgabewert
Ein neues Array, bei dem das Element an index
durch value
ersetzt wird.
Ausnahmen
RangeError
-
Wird ausgelöst, wenn
index >= array.length
oderindex < -array.length
.
Beschreibung
Die with()
-Methode ändert den Wert eines bestimmten Index im Array und gibt ein neues Array zurück, bei dem das Element am angegebenen Index durch den angegebenen Wert ersetzt wird. Das ursprüngliche Array wird nicht verändert. Dies ermöglicht es Ihnen, Array-Methoden während der Manipulationen zu verketten.
Durch das Kombinieren von with()
mit at()
können Sie ein Array sowohl mit negativen Indizes schreiben als auch lesen (jeweils).
Die with()
-Methode erzeugt niemals ein lückenhaftes Array. Wenn das Quellarray lückenhaft ist, werden die leeren Plätze im neuen Array durch undefined
ersetzt.
Die with()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
Eigenschaft hat und integerbasierte Schlüsselwerteigenschaften.
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 dann 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 lückenhaften Arrays
Die with()
-Methode erzeugt immer ein dichtes Array.
const arr = [1, , 3, 4, , 6];
console.log(arr.with(0, 2)); // [2, undefined, 3, 4, undefined, 6]
Aufruf von with() bei 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 nicht negative Ganzzahl ist, die kleiner als length
ist. Während jede Eigenschaft von this
zugegriffen wird, wird das Array-Element, dessen Index gleich dem Schlüssel der Eigenschaft ist, 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 Language Specification # sec-array.prototype.with |
Browser-Kompatibilität
BCD tables only load in the browser