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