Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Array.prototype.slice()

Podsumowanie

Wydobywa fragment tablicy i zwraca go jako nową tablicę.

Składnia

arr.slice([begin[, end]])

Parametry

begin
Indeks (liczony od zera) od którego zaczyna się wydobywanie.
Jeżeli indeks jest ujemny, begin wskazuje przesunięcie w kolejności od końca. slice(-2) wydobywa kolejno drugi od końca i ostatni element tablicy.
end
Indeks (liczony od zera) przed którym kończy się wydobywanie. slice wydobywa elementy jednakże nie zawiera end.
slice(1,4) wydobywa elementy od drugiego do czwartego (o indeksach 1, 2 i 3).
Jeżeli parametr ten ma wartość ujemną to end określa odległość od końca tablicy. slice(2,-1) wydobywa kolejne elementy od trzeciego do przedostatniego.
Jeżeli end jest pominięty, slice wydobywa wszystkie elementy do końca tablicy.

Opis

slice nie zmienia zawartości oryginalnej tablicy, tylko zwraca nową kopię "o jednym poziomie głębokości" zawierającą elementy wyciągnięte z oryginalnej tablicy. Elementy oryginalnej tablicy są kopiowane do nowej tablicy następująco:

  • W przypadku referencji do obiektów (nie obiektów właściwych), slice kopiuje referencje do nowej tablicy. Obydwie - oryginalna i nowa tablica - odnoszą się do tego samego obiektu. Jeżeli zmienimy obiekt odniesienia, zmiany są widoczne dla obydwu tablic, nowej i oryginalnej.
  • Dla łańcuchów znaków i liczb (nie będących obiektami String i Number, slice kopiuje łańcuchy znaków i liczby do nowej tablicy. Zmiana łańcucha znaków lub liczby w jednej z tablic nie wpływa na wartość w drugiej.

Jeżeli nowy element jest dodany do jednej z tablic, to nie wpływa to w żaden sposób na drugą.

Przykłady

Przykład: Zastosowanie slice

W następującym przykładzie slice tworzy nową tablicę newCar z myCar. Obydwie zawierają odniesienie do obiektu myHonda. Kiedy kolor myHonda jest zmieniany na purpurowy, to obie tablice odzwierciedlają zmianę.

//Użycie slice, tworzenie newCar z myCar.
var myHonda = { color: "red", wheels: 4, engine: { cylinders: 4, size: 2.2 } };
var myCar = [myHonda, 2, "cherry condition", "purchased 1997"];
var newCar = myCar.slice(0, 2);

//Wpisz wartości myCar, newCar i color myHonda
//  referenced from both arrays.
console.log("myCar = " + myCar.toSource());
console.log("newCar = " + newCar.toSource());
console.log("myCar[0].color = " + myCar[0].color);
console.log("newCar[0].color = " + newCar[0].color);

//zmienia kolor myHonda.
myHonda.color = "purple";
console.log("Nowy kolor mojej Honda to " + myHonda.color);

//Wpisz color myHonda odnoszący się do oby tablic
console.log("myCar[0].color = " + myCar[0].color);
console.log("newCar[0].color = " + newCar[0].color);

Ten skrypt wypisze:

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 = red 
newCar[0].color = red
Nowym kolorem mojej Honda jest purpurowy
myCar[0].color = purple
newCar[0].color = purple

Autorzy i etykiety dokumentu

 Ostatnia aktualizacja: teoli,