Array.prototype.toSpliced()
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 toSpliced()
-Methode von Array
-Instanzen ist die kopierende Version der splice()
-Methode. Sie gibt ein neues Array zurück, bei dem einige Elemente an einem gegebenen Index entfernt und/oder ersetzt wurden.
Syntax
toSpliced(start)
toSpliced(start, skipCount)
toSpliced(start, skipCount, item1)
toSpliced(start, skipCount, item1, item2)
toSpliced(start, skipCount, item1, item2, /* …, */ itemN)
Parameter
start
-
Der Null-basierte Index, an dem begonnen werden soll, das Array zu ändern, konvertiert zu einer ganzen Zahl.
- Ein negativer Index zählt von hinten im Array zurück — wenn
-array.length <= start < 0
, wirdstart + array.length
verwendet. - Wenn
start < -array.length
oderstart
ausgelassen wird, wird0
verwendet. - Wenn
start >= array.length
, wird kein Element gelöscht, aber die Methode verhält sich als Hinzufügefunktion und fügt so viele Elemente hinzu, wie bereitgestellt werden.
- Ein negativer Index zählt von hinten im Array zurück — wenn
skipCount
Optional-
Eine ganze Zahl, die angibt, wie viele Elemente im Array ab
start
entfernt (oder übersprungen) werden sollen.Wenn
skipCount
ausgelassen wird oder sein Wert größer oder gleich der Anzahl der Elemente nach der durchstart
angegebenen Position ist, dann werden alle Elemente vonstart
bis zum Ende des Arrays gelöscht. Wenn Sie jedoch einenitemN
-Parameter übergeben möchten, sollten SieInfinity
alsskipCount
verwenden, um alle Elemente nachstart
zu löschen, da ein explizitesundefined
in0
umgewandelt wird.Wenn
skipCount
0
oder negativ ist, werden keine Elemente entfernt. In diesem Fall sollten Sie mindestens ein neues Element angeben (siehe unten). item1
, …,itemN
Optional-
Die Elemente, die ab
start
dem Array hinzugefügt werden sollen.Wenn Sie keine Elemente angeben, entfernt
toSpliced()
nur Elemente aus dem Array.
Rückgabewert
Ein neues Array, das aus allen Elementen vor start
, item1
, item2
, …, itemN
und allen Elementen nach start + skipCount
besteht.
Beschreibung
Die toSpliced()
-Methode entfernt, wie splice()
, eine gegebene Anzahl von Elementen aus dem Array ab einem angegebenen Index und fügt dann die angegebenen Elemente an demselben Index ein. Sie gibt jedoch ein neues Array zurück, anstatt das Original-Array zu ändern. Die gelöschten Elemente werden daher nicht von dieser Methode zurückgegeben, bleiben jedoch im Original-Array zugänglich.
Die toSpliced()
-Methode erzeugt niemals ein dünn besetztes Array. Wenn das Quell-Array dünn besetzt ist, werden die leeren Plätze im neuen Array durch undefined
ersetzt.
Die toSpliced()
-Methode ist allgemein. Sie erwartet lediglich, dass der this
-Wert eine length
-Eigenschaft und integer-indizierte Eigenschaften hat.
Beispiele
Löschen, Hinzufügen und Ersetzen von Elementen
Sie können toSpliced()
verwenden, um Elemente in einem Array zu löschen, hinzuzufügen und zu ersetzen und ein neues Array effizienter als mit slice()
und concat()
zu erstellen.
const months = ["Jan", "Mar", "Apr", "May"];
// Inserting an element at index 1
const months2 = months.toSpliced(1, 0, "Feb");
console.log(months2); // ["Jan", "Feb", "Mar", "Apr", "May"]
// Deleting two elements starting from index 2
const months3 = months2.toSpliced(2, 2);
console.log(months3); // ["Jan", "Feb", "May"]
// Replacing one element at index 1 with two new elements
const months4 = months3.toSpliced(1, 1, "Feb", "Mar");
console.log(months4); // ["Jan", "Feb", "Mar", "May"]
// Original array is not modified
console.log(months); // ["Jan", "Mar", "Apr", "May"]
Verwendung von toSpliced() bei dünn besetzten Arrays
Die toSpliced()
-Methode erstellt immer ein dicht besetztes Array.
const arr = [1, , 3, 4, , 6];
console.log(arr.toSpliced(1, 2)); // [1, 4, undefined, 6]
Aufruf von toSpliced() auf Nicht-Array-Objekten
Die toSpliced()
-Methode liest die length
-Eigenschaft von this
. Dann liest sie die benötigten integer-indizierten Eigenschaften und schreibt diese in das neue Array.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
};
console.log(Array.prototype.toSpliced.call(arrayLike, 0, 1, 2, 3));
// [2, 3, undefined, 4]
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-array.prototype.tospliced |