Javascript-metoda Array.slice: jemnosti použití

Pole v javascriptovém jazyce mají mnoho specifických užitečných metod, které usnadňují manipulaci s daty. Některé z těchto funkcí upravují zdrojový objekt, jiné vytvářejí upravené nebo přesné kopie. Poslední skupina patří k užitečné metodě Array.slice (). Umožňuje vybrat z pole jakékoliv submasy a používat je samostatně.

Syntaxe metody



array.slice ([začátek [, konec]])

hmatatelné.

První parametr označuje pozici počátku požadovaného submasteru, druhá je poloha prvku, na němž se extrakce zastaví. Proto musí reprezentovat celá čísla.

Při absenci argumentuendmetoda bude fungovat až do konce výstupního pole.

Při absenci obou parametrůbude polejednoduše zkopírováno zcela.

Funkce může také přijímat negativní argumenty, přičemž počítání poloh začíná na konci pole.

Podívejme se na práci metodyslice ()na příkladu jednoduchého pole čísel:

let arr = [5, 4, 3 , 2, 1];

Získání submastery z prvních tří prvků:

console.log (arr.slice (0 3));

První argument je 0. Určuje funkci, která musí být spuštěna z nulové pozice. A druhý - 3 říká, že musíte zastavit na prvku s indexem 3, který nezahrnuje do konečného vzorku. V důsledku toho se na konzoli zobrazí pole, včetně 5 4 a 3.

znakem způsobu JavaScriptarray.slice(), je to, že nemění objekt v kontextu kterého byl nazván. To znamená, že po všech provedených operacích zůstala polearrnezměněná a mohla by být použita programem pro jiné účely.

Funkcí funkce je vytvoření nového pole, které nemá souvislost s výstupem, a doplní ho o vybrané prvky. Aby toto pole mohlo být použito později, musí být v proměnné zapsáno.

Tento mechanismus umožňuje automaticky vytvářet kopie bez ručního výběru každého prvku sekvence.

let klon = arr.slice (); 
console.log (klonování); //[5, 4, 3, 2, 1]

Volání metody bez argumentů začíná kopírovat od začátku a konce polearr . Výsledný klon je zcela nezávislý na jeho zdroji a umožňuje manipulaci s daty bez obav z jejich navždy ztráty.

klon
++;
console.log (klon); //[5, 4, 4, 2, 1]
console.log (arr); //[5, 4, 3, 2, 1]

Zde je důležité mít na paměti, že objekty javascript jsou přenášeny odkazem. Následně, pokud prvky sekvence jsou objekty, pak jejich změna v kopii bude mít za následek stejnou změnu ve zdrojovém kódu.

let arr = [
{a: 1},
[2,3]
;

//kopírovat výstupní pole
let newArr = arr.slice ();
console.log (newArr); //[{a: 1}, [2, 3]]

//změnit kopii
newArr.a = 7;
console.log (newArr); //[{a: 7}, [2, 3]]

//výstupní pole také změněno
console.log (arr); //[{a: 7}, [2, 3]]


Bez obav je možné pracovat s řadami, čísly a Booleovskými operátory, protože jsou kompletně zkopírovány do nové sekvence. Zároveň přidávání a odstraňování položek v klonovaném poli neovlivní výstup.

Související publikace