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 bestimmten Index entfernt und/oder ersetzt wurden.
Syntax
toSpliced(start)
toSpliced(start, deleteCount)
toSpliced(start, deleteCount, item1)
toSpliced(start, deleteCount, item1, item2)
toSpliced(start, deleteCount, item1, item2, /* …, */ itemN)
Parameter
start
-
Nullbasierter Index, ab dem das Array geändert werden soll, in eine ganze Zahl umgewandelt.
- Ein negativer Index zählt von 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 Element gelöscht, sondern die Methode verhält sich als Hinzufügemethode und fügt so viele Elemente hinzu, wie angegeben sind.
- Ein negativer Index zählt von Ende des Arrays zurück — wenn
deleteCount
Optional-
Eine ganze Zahl, die die Anzahl der zu entfernenden Elemente ab
start
im Array angibt.Wenn
deleteCount
weggelassen wird oder wenn sein Wert größer oder gleich der Anzahl der Elemente nach der durchstart
angegebenen Position ist, werden alle Elemente vonstart
bis zum Ende des Arrays gelöscht. Wenn Sie jedoch einenitemN
Parameter übergeben möchten, sollten SieInfinity
alsdeleteCount
übergeben, um alle Elemente nachstart
zu löschen, da ein explizitesundefined
in0
umgewandelt wird.Wenn
deleteCount
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
zum Array hinzugefügt werden sollen.Wenn Sie keine Elemente angeben, wird
toSpliced()
nur Elemente aus dem Array entfernen.
Rückgabewert
Ein neues Array, das aus allen Elementen vor start
, item1
, item2
, …, itemN
und allen Elementen nach start + deleteCount
besteht.
Beschreibung
Die toSpliced()
Methode, ähnlich wie splice()
, führt mehrere Aufgaben auf einmal aus: Sie entfernt die angegebene Anzahl von Elementen aus dem Array, beginnend an einem bestimmten Index, und fügt dann die angegebenen Elemente an derselben Stelle ein. Sie gibt jedoch ein neues Array zurück, anstatt das ursprüngliche Array zu verändern. Die gelöschten Elemente werden daher nicht durch diese Methode zurückgegeben.
Die toSpliced()
Methode erzeugt niemals ein dünn besetztes Array. Wenn das Quellarray dünn besetzt ist, werden die leeren Plätze im neuen Array durch undefined
ersetzt.
Die toSpliced()
Methode ist generisch. Sie erwartet lediglich, dass der this
Wert eine length
Eigenschaft und integerbasierte 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 dabei 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() auf 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
. Sie liest dann die benötigten integerbasierten Eigenschaften und schreibt sie 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® 2025 Language Specification # sec-array.prototype.tospliced |
Browser-Kompatibilität
BCD tables only load in the browser