--- title: Array.prototype.slice() slug: Web/JavaScript/Referencje/Obiekty/Array/slice tags: - Dokumentacja_JavaScript - Dokumentacje - JavaScript - Strony_wymagające_dopracowania - Wszystkie_kategorie translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice ---
{{ JSRef }}
{{EmbedInteractiveExample("pages/js/array-slice.html")}}
Wydobywa fragment tablicy i zwraca go jako nową tablicę.
arr.slice([begin[, end]])
begin
begin
wskazuje przesunięcie w kolejności od końca. slice(-2)
wydobywa kolejno drugi od końca i ostatni element tablicy.end
slice
wydobywa elementy jednakże nie zawiera end
.slice(1,4)
wydobywa elementy od drugiego do czwartego (o indeksach 1, 2 i 3).end
określa odległość od końca tablicy. slice(2,-1)
wydobywa kolejne elementy od trzeciego do przedostatniego.end
jest pominięty, slice
wydobywa wszystkie elementy do końca tablicy.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:
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.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ą.
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