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,
beginwskazuje 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.
slicewydobywa elementy jednakże nie zawieraend.
-
slice(1,4)wydobywa elementy od drugiego do czwartego (o indeksach 1, 2 i 3).
- Jeżeli parametr ten ma wartość ujemną to
endokreśla odległość od końca tablicy.slice(2,-1)wydobywa kolejne elementy od trzeciego do przedostatniego.
- Jeżeli
endjest pominięty,slicewydobywa 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),
slicekopiuje 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
StringiNumber),slicekopiuje ł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