Javascript-metóda Array.slice: jemnosť použitia

Polia v jazyku javascript majú mnoho špecifických užitočných metód, ktoré uľahčujú manipuláciu s údajmi. Niektoré z týchto funkcií upravujú zdrojový objekt, iné vytvárajú modifikované alebo presné kópie. Posledná skupina patrí k užitočnej metóde Array.slice (). Umožňuje vybrať z poľa všetky submasy a použiť ich samostatne.

Syntax metóda



array.slice ([začína [, koniec]])

Ako je možné vidieť, táto metóda má dva parametre, ale je potrebný žiadny z nich vynechané.

Prvý parameter označuje polohu začiatku požadovaného podradca, druhá je poloha prvku, na ktorom sa extrakcia zastaví. Preto musia predstavovať celé čísla.

V neprítomnosti argumentukoncovejSpôsob bude pracovať až do konca pôvodného poľa.

Pri absencii obidvoch parametrovbude polejednoducho úplne skopírované.

Funkcia môže prijať aj negatívne argumenty, pričom počítanie pozícií sa začína na konci poľa.

Pozrime sa na prácu metódyslice ()na príklade jednoduchého poľa čísel:

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

Získanie submastery z prvých troch prvkov:

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

, kde prvý argument - 0. To ukazuje funkcie, ktoré potrebujete na spustenie z nulovej polohy. A druhá - 3 hovorí, že je potrebné, aby zostali na prvku s indexom 3 jeho vylúčením do konečného výberu. Výsledkom je, že sa konzola zobrazí pole, ktoré obsahuje 5 4 a 3.

& lt; skriptu asynchrónny = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
<- fb_336x280_1 ->

& lt; script & gt; (adsbygoogle = window.adsbygoogle || []) stlačte ({});
[palec] http://hi-news.pp.ua/uploads/posts/2018-06/javascript-metod-arrayslice-tonkosch-vikoristannya_181.jpeg [/palec]

Získanie submastera z posledných troch prvkov:

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

Na splnenie tejto úlohy postačuje iba jeden argument na označenie začiatku odberu vzoriek. Záporná hodnota spúšťa odpočítavanie od konca poľa. V tomto prípade je prvok s hodnotou 3. Výsledné pole obsahuje číslo 321.

Vypočítaná hodnota

znakom spôsobu JavaScriptarray.slice(), je to, že neupravuje objekt, v rámci ktorého bol nazvaný. To znamená, že po všetkých vykonaných operáciách zostalo polearrnezmenené a program by ho mohol použiť na iné účely.

Funkciou funkcie je vytvoriť nové pole, ktoré nie je spojené s výstupom a vyplniť ho vybranými prvkami. Aby bolo toto pole použité neskôr, musí byť v premennej zapísané.

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
<- fb_336x280_2 ->

& lt; script & gt; (adsbygoogle = window.adsbygoogle || []) stlačte ({});
let arr = [5, 4, 3, 2, 1];
nechajte newArr = arr.slice (1 4);

console.log (newArr); //[4, 3, 2]
console.log (arr);

Z príkladu môžeme vidieť, že objektarrzostal nezmenený. Výsledkom metódy bolo nové polenewArr .

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

Kopírovacie polia

Tento mechanizmus umožňuje automaticky vytvárať kópie bez ručného výberu každého prvku sekvencie.

nechať klon = arr.slice (); 
console.log (klonovanie);

Vyvolanie metódy bez argumentov začína kopírovať od začiatku a konca poľaarr . Výsledný klon je úplne nezávislý od jeho zdroja a umožňuje manipuláciu s údajmi bez strachu, že ich stratíte navždy.

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

Tu je dôležité mať na pamäti, že objekty javascript sa prenášajú odkazom. V dôsledku toho, ak prvky sekvencie sú objekty, potom ich zmena v kópii bude mať za následok rovnakú zmenu zdrojového kódu.

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

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

//zmena kópie
newArr.a = 7;
console.log (newArr); //[{a: 7}, [2, 3]]

//výstupné pole sa tiež zmenilo
console.log (arr); //[{a: 7}, [2, 3]]


Bez obáv je možné pracovať s riadkami, číslami a boolovskými operátormi, pretože sú úplne skopírované do novej sekvencie. Zároveň pridávanie a odstraňovanie položiek v klonovanom poli neovplyvňuje výstup.

Súvisiace publikácie