Wydobywa fragment tablicy i zwraca go jako nową tablicę.
Metoda obiektu: Array
Składnia
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 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.
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
Listing
Ranga: Administrator serwisu Punktów: 0