Tablice w języku javascript mają wiele konkretnych użytecznych metod, które ułatwiają manipulację danymi. Niektóre z tych funkcji modyfikują obiekt źródłowy, inne tworzą zmodyfikowane lub dokładne kopie. Ostatnia grupa należy do użytecznej metody Array.slice (). Pozwala wybrać z tablicy dowolny submas i używać go osobno.
program sposobem
Array.slice ([rozpocząć [, end]])
Jak można zauważyć, sposób ma dwa argumenty, ale wymagany jest żaden z nich namacalne.
Pierwszy parametr wskazuje pozycję początku żądanego submastera, drugi to pozycja elementu, na którym zatrzymana zostanie ekstrakcja. W związku z tym muszą reprezentować liczby całkowite.
W przypadku braku argumentuend
, metoda będzie działała aż do końca tablicy wyjściowej.
W przypadku braku obu parametrówtablica
- zostanie po prostu skopiowana całkowicie.
Funkcja może również przyjmować argumenty ujemne, a liczenie pozycji zaczyna się na końcu tablicy.
Rozważmy pracę metodyslice ()
na przykładzie prostej tablicy liczb:
let arr = [5, 4, 3 2, 1];
Uzyskanie submaster z pierwszych trzech elementów:
console.log (arr.slice (0 3));
Tutaj pierwszy argument to 0. Określa on funkcję, która musi zostać uruchomiona z pozycji zerowej. A drugi - 3 mówi, że musisz zatrzymać element o indeksie 3, nie wliczając go do ostatecznej próbki. W rezultacie na konsoli zostanie wyświetlona tablica, w tym 5 4 i 3.
& lt ;! - fb_336x280_1 - & gt;
& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
Pierwsze podmassyva ostatnie trzy elementy:
console.log (arr.slice (-3));
Aby wykonać to zadanie, wystarczy jeden argument wystarczający do wskazania początku pobierania próbek. Wartość ujemna wyzwala odliczanie od końca tablicy. W tym przypadku, element o wartości 3. Otrzymaną tablicy zawiera liczbę 321.
oblicza się stosunek
umożliwia w sposób JavaScriptArray.slice
() jest to, że nie modyfikuje obiektu w kontekście, w którym został wywołany. Oznacza to, że po wszystkich wykonanych operacjach tablicaarr
pozostała niezmieniona i mogła być użyta przez program do innych celów.
Funkcja funkcji polega na utworzeniu nowej tablicy, która nie jest powiązana z wynikiem, i wypełnieniu jej wybranymi elementami. Aby ta tablica mogła być później używana, musi być zapisana w zmiennej.
,& lt ;! - fb_336x280_2 - & gt;
& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
niech arr = [5, 4, 3, 2, 1];
let newArr = arr.slice (1 4);
console.log (newArr); //[4, 3, 2]
console.log (arr); //[5, 4, 3, 2, 1],
,
W przykładzie pokazano, że przedmiotarr
pozostały niezmienione. Wynikiem tej metody była nowa tablicanewArr
.
Kopiuj tablice
Mechanizm ten umożliwia automatyczne tworzenie kopii bez ręcznego wybierania każdego elementu sekwencji.
let clone = arr.slice ();
console.log (klon); //[5, 4, 3, 2, 1]
Wywołanie metody bez argumentów rozpoczyna kopiowanie od początku i końca tablicyarr
. Powstały klon jest całkowicie niezależny od źródła i pozwala manipulować danymi bez obawy, że straci je na zawsze.
klon
++;
console.log (klon); //[5, 4, 4, 2, 1]
console.log (arr); //[5, 4, 3, 2, 1]
Tutaj ważne jest, aby pamiętać, że obiekty javascript są przesyłane przez odniesienie. W konsekwencji, jeśli elementy sekwencji są obiektami, ich zmiana w kopii spowoduje taką samą zmianę w kodzie źródłowym.
niech arr = [
{a: 1},
[2,3]
];
//skopiuj tablicę wyjściową
let newArr = arr.slice ();
console.log (newArr); //[{a: 1}, [2, 3]]
//zmiana kopii
newArr.a = 7;
console.log (newArr); //[{a: 7}, [2, 3]]
//tablica wyjściowa również się zmieniła
console.log (arr); //[{a: 7}, [2, 3]]
Bez obawy można pracować z wierszami, liczbami i wartościami operatorów boolowskich, ponieważ są one całkowicie skopiowane do nowej sekwencji. Jednocześnie dodawanie i usuwanie elementów w sklonowanej tablicy nie ma wpływu na dane wyjściowe.