Signatur
Beschreibung
Die slice()-Methode von Array-Instanzen gibt eine flache Kopie (shallow copy) eines Ausschnitts eines Arrays als neues Array-Objekt zurück, ausgewählt von start bis end (end nicht enthalten), wobei start und end die Indizes der Elemente in diesem Array darstellen. Das ursprüngliche Array wird nicht verändert.
Die slice()-Methode ist eine kopierende Methode. Sie verändert this nicht, sondern gibt stattdessen eine shallow copy zurück, die einige der gleichen Elemente wie das ursprüngliche Array enthält.
Die slice()-Methode bewahrt leere Slots. Wenn der ausgeschnittene Bereich sparse (dünn besetzt) ist, ist auch das zurückgegebene Array sparse.
Die slice()-Methode ist generisch. Sie erwartet lediglich, dass der this-Wert eine length-Eigenschaft und ganzzahlig indizierte Eigenschaften besitzt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $start | number | — | Nullbasierter Index, an dem die Extraktion beginnt, in eine Ganzzahl konvertiert. 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 ist oder start weggelassen wird, wird 0 verwendet. Wenn start >= array.length, wird ein leeres Array zurückgegeben. |
| $end | number | — | Nullbasierter Index, an dem die Extraktion endet, in eine Ganzzahl konvertiert. slice() extrahiert bis, aber ohne end. 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, wird 0 verwendet. Wenn end >= array.length oder end weggelassen wird oder undefined ist, wird array.length verwendet, sodass alle Elemente bis zum Ende extrahiert werden. Wenn end eine Position vor oder an der Position impliziert, die start impliziert, wird ein leeres Array zurückgegeben. |
Rückgabewert
Beispiele
Einen Ausschnitt eines bestehenden Arrays zurückgeben
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
const citrus = fruits.slice(1, 3);
// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']
Weglassen des end-Parameters
const fruits = ["Apple", "Banana", "Orange", "Mango", "Pineapple"];
const tropical = fruits.slice(2);
console.log(tropical); // ['Orange', 'Mango', 'Pineapple']
Verwendung negativer Indizes
const fruits = ["Apple", "Banana", "Orange", "Mango", "Pineapple"];
const lastTwo = fruits.slice(-2);
console.log(lastTwo); // ['Mango', 'Pineapple']
Verwendung eines positiven start-Index und eines negativen end-Index
const fruits = ["Apple", "Banana", "Orange", "Mango", "Pineapple"];
// Using positive start index and negative end index
const sliceExample = fruits.slice(1, -1);
console.log(sliceExample); // ['Banana', 'Orange', 'Mango']
slice mit Arrays von Objekten verwenden
// Using slice, create newCar from myCar.
const myHonda = {
color: "red",
wheels: 4,
engine: { cylinders: 4, size: 2.2 },
};
const myCar = [myHonda, 2, "cherry condition", "purchased 1997"];
const newCar = myCar.slice(0, 2);
console.log("myCar =", myCar);
console.log("newCar =", newCar);
console.log("myCar[0].color =", myCar[0].color);
console.log("newCar[0].color =", newCar[0].color);
// Change the color of myHonda.
myHonda.color = "purple";
console.log("The new color of my Honda is", myHonda.color);
console.log("myCar[0].color =", myCar[0].color);
console.log("newCar[0].color =", newCar[0].color);
slice() auf Nicht-Array-Objekten aufrufen
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 33, // ignored by slice() since length is 3
};
console.log(Array.prototype.slice.call(arrayLike, 1, 3));
// [ 3, 4 ]
slice() zur Umwandlung von array-ähnlichen Objekten in Arrays verwenden
// slice() is called with `this` passed as the first argument
const slice = Function.prototype.call.bind(Array.prototype.slice);
function list() {
return slice(arguments);
}
const listResult = list(1, 2, 3); // [1, 2, 3]
slice() auf sparse Arrays anwenden
console.log([1, 2, , 4, 5].slice(1, 4)); // [2, empty, 4]