Visit Mozilla.org

Dokumentacja języka JavaScript 1.5:Obiekty:Array:slice

z Mozilla Developer Center, polskiego centrum programistów Mozilli.

UWAGA: Tłumaczenie tej strony nie zostało zakończone.
Może być ona niekompletna lub wymagać korekty.
Chcesz pomóc? | Dokończ tłumaczenie | Sprawdź ortografię | Więcej takich stron...

Spis treści

[edytuj] Podsumowanie

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

Metoda obiektu: Array
Zaimplementowana w: JavaScript 1.2, NES 3.0
Wersja ECMA: ECMA-262 edycja 3

[edytuj] Składnia

slice(begin[,end])

[edytuj] 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.

[edytuj] 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 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ą.

[edytuj] Przykłady

[edytuj] 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.
print("myCar = " + myCar.toSource());
print("newCar = " + newCar.toSource());
print("myCar[0].color = " + myCar[0].color);
print("newCar[0].color = " + newCar[0].color);

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

//Wpisz color myHonda odnoszący się do oby tablic
print("myCar[0].color = " + myCar[0].color);
print("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