Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Array
  6. slice()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Array.prototype.slice()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Dieslice() Methode vonArray Instanzen gibt eineflache Kopie eines Teils eines Arrays in ein neues Array-Objekt zurück, das vonstart bisend ausgewählt wurde (end ist nicht inbegriffen), wobeistart undend die Indizes von Elementen in diesem Array darstellen. Das ursprüngliche Array wird nicht verändert.

Probieren Sie es aus

const animals = ["ant", "bison", "camel", "duck", "elephant"];console.log(animals.slice(2));// Expected output: Array ["camel", "duck", "elephant"]console.log(animals.slice(2, 4));// Expected output: Array ["camel", "duck"]console.log(animals.slice(1, 5));// Expected output: Array ["bison", "camel", "duck", "elephant"]console.log(animals.slice(-2));// Expected output: Array ["duck", "elephant"]console.log(animals.slice(2, -1));// Expected output: Array ["camel", "duck"]console.log(animals.slice());// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"]

Syntax

js
slice()slice(start)slice(start, end)

Parameter

startOptional

Nullbasierter Index, bei dem die Extraktion beginnt,in eine Ganzzahl umgewandelt.

  • Ein negativer Index zählt vom Ende des Arrays zurück — wenn-array.length <= start < 0, wirdstart + array.length verwendet.
  • Wennstart < -array.length oderstart weggelassen wird, wird0 verwendet.
  • Wennstart >= array.length, wird ein leeres Array zurückgegeben.
endOptional

Nullbasierter Index, bei dem die Extraktion endet,in eine Ganzzahl umgewandelt.slice() extrahiert bis, aber nicht einschließlichend.

  • Ein negativer Index zählt vom Ende des Arrays zurück — wenn-array.length <= end < 0, wirdend + array.length verwendet.
  • Wennend < -array.length, wird0 verwendet.
  • Wennend >= array.length oderend weggelassen oderundefined ist, wirdarray.length verwendet, wodurch alle Elemente bis zum Ende extrahiert werden.
  • Wennend eine Position impliziert, die vor oder an der Position liegt, diestart impliziert, wird ein leeres Array zurückgegeben.

Rückgabewert

Ein neues Array, das die extrahierten Elemente enthält.

Beschreibung

Dieslice() Methode ist einekopierende Methode. Sie verändertthis nicht, sondern gibt stattdessen eineflache Kopie zurück, die einige der gleichen Elemente wie die des ursprünglichen Arrays enthält.

Dieslice() Methode bewahrt leere Stellen. Wenn der ausgeschnittene Teillückenhaft ist, ist das zurückgegebene Array ebenfalls lückenhaft.

Dieslice() Methode istgenerisch. Sie erwartet nur, dass derthis-Wert einelength-Eigenschaft und integerindizierte Eigenschaften hat.

Beispiele

Einen Teil eines vorhandenen Arrays zurückgeben

js
const fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];const citrus = fruits.slice(1, 3);// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']// citrus contains ['Orange','Lemon']

In diesem Beispiel extrahiertslice(1, 3) Elemente vom Index1 bis, aber nicht einschließlich, Index3, was zu einem neuen Array['Orange', 'Lemon'] führt.

Den Endparameter weglassen

js
const fruits = ["Apple", "Banana", "Orange", "Mango", "Pineapple"];const tropical = fruits.slice(2);console.log(tropical); // ['Orange', 'Mango', 'Pineapple']

In diesem Beispiel extrahiertslice(2) Elemente vom Index2 bis zum Ende des Arrays.

Verwenden negativer Indizes

js
const fruits = ["Apple", "Banana", "Orange", "Mango", "Pineapple"];const lastTwo = fruits.slice(-2);console.log(lastTwo); // ['Mango', 'Pineapple']

In diesem Beispiel extrahiertslice(-2) die letzten zwei Elemente des Arrays. Bei Verwendung eines negativen Index mit derslice Methode werden negative Indizes vom Ende des Arrays aus gezählt, beginnend bei-1 für das letzte Element,-2 für das vorletzte Element und so weiter. Der negative Index-2 selbst ist eingeschlossen, da er der Ausgangspunkt der Extraktion ist.

|     |     |     |     |     ||  S  |  L  |  I  |  C  |  E  ||     |     |     |     |     |  -5    -4    -3    -2    -1<--- read from reverse

Verwenden eines positiven Startindex und eines negativen Endindex

js
const fruits = ["Apple", "Banana", "Orange", "Mango", "Pineapple"];// Using positive start index and negative end indexconst sliceExample = fruits.slice(1, -1);console.log(sliceExample); // ['Banana', 'Orange', 'Mango']

In diesem Beispiel beginntslice(1, -1) mit der Extraktion ab Index1 und geht bis zu, aber schließt nicht ein, das Element bei Index-1 (welches das letzte Element ist). Dies ergibt ein neues Array mit['Banana', 'Orange', 'Mango']. Dieslice Methode schließt immer das Element am angegebenen Endindex aus, unabhängig davon, ob es positiv oder negative ist.

read from start --->   0     1     2     3     4|     |     |     |     |     ||  S  |  L  |  I  |  C  |  E  ||     |     |     |     |     |  -5    -4    -3    -2    -1<--- read from reverse

Verwenden von slice mit Arrays von Objekten

Im folgenden Beispiel erstelltslice ein neues Array,newCar, ausmyCar. Beide beinhalten eine Referenz zum ObjektmyHonda. Wenn die Farbe vonmyHonda auf Lila geändert wird, reflektieren beide Arrays die Änderung.

js
// 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);

Dieses Skript schreibt:

myCar = [  { color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } },  2,  'cherry condition',  'purchased 1997']newCar = [ { color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } }, 2 ]myCar[0].color = rednewCar[0].color = redThe new color of my Honda is purplemyCar[0].color = purplenewCar[0].color = purple

Aufrufen von slice() bei nicht-Array-Objekten

Dieslice() Methode liest dielength-Eigenschaft vonthis. Sie liest dann die integerindizierten Eigenschaften vonstart bisend und definiert sie auf einem neu erstellten Array.

js
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 ]

Verwenden von slice() um array-ähnliche Objekte in Arrays zu konvertieren

Dieslice() Methode wird oft mitbind() undcall() verwendet, um eine Hilfsmethode zu erstellen, die ein array-ähnliches Objekt in ein Array konvertiert.

js
// slice() is called with `this` passed as the first argumentconst slice = Function.prototype.call.bind(Array.prototype.slice);function list() {  return slice(arguments);}const listResult = list(1, 2, 3); // [1, 2, 3]

Verwenden von slice() bei lückenhaften Arrays

Das vonslice() zurückgegebene Array kann lückenhaft sein, wenn die Quelle lückenhaft ist.

js
console.log([1, 2, , 4, 5].slice(1, 4)); // [2, empty, 4]

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.slice

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp