Metoda Javascript Array.slice: subtelności użycia

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; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_1 - & gt;

& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
[kciuk] http://hi-news.pp.ua/uploads/posts/2018-06/javascript-metod-arrayslice-tonkosch-vikoristannya_181.jpeg [/kciuka],

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 tablicaarrpozostał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.

,
Związek pośredni scenariusz asynchroniczny = „//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& 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 przedmiotarrpozostały niezmienione. Wynikiem tej metody była nowa tablicanewArr .

[kciuk] http://hi-news.pp.ua/uploads/posts/2018-06/javascript-metod-arrayslice-tonkosch-vikoristannya_292.jpeg [/kciuka],

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.

Powiązane publikacje