Javascript-metoda Array.slice: razpredelnice uporabe

Nizi v jeziku javascript imajo veliko specifičnih uporabnih metod, ki omogočajo manipulacijo podatkov. Nekatere od teh funkcij spreminjajo izvorni objekt, druge ustvarjajo spremenjene ali natančne kopije. Zadnja skupina pripada uporabni metodi Array.slice (). Omogoča vam, da iz niza izberete poljubno podmase in jo uporabite ločeno.

Sintaksa metode



array.slice ([begin [, end]])

Kot lahko vidite, metoda ima dva argumenta, vendar nobena od njih ni potrebna oprijemljive.

Prvi parameter označuje položaj začetka želenega podsistema, drugi pa je položaj elementa, na katerem se bo izločitev ustavila. Zato morajo predstavljati cela števila.

Če ni argumentakonec , bo metoda delovala do konca izhodne matrike.

Če ni obeh parametrov , bo poljepreprosto popolnoma kopirano.

Funkcija lahko sprejme tudi negativne argumente s štetjem položaja, ki se začne na koncu matrike.

Razmislimo o delu metodeslice ()na primeru preprostega niza števil:

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

Pridobitev podpornika iz prvih treh elementov:

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

Tukaj je prvi argument 0. To določa funkcijo, ki jo je treba zagnati iz ničelnega položaja. In drugi - 3 pravi, da se morate ustaviti na elementu z indeksom 3, ne pa ga vključiti v končni vzorec. Kot rezultat, bo na konzoli prikazana matrika, vključno s 5 4 in 3.

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_1 - & gt;

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

Pridobitev podpornika iz zadnjih treh elementov:

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

Za izpolnitev te naloge zadostuje le en argument za začetek vzorčenja. Negativna vrednost sproži odštevanje od konca polja. V našem primeru je to element z vrednostjo 3. Končno polje vključuje številke 321.

Izračunana vrednost

Značilnost metode javascriptarray.slice() je, da ne spreminja predmeta, v katerem se je imenoval. To pomeni, da je po izvedenih operacijah poljeinostalo nespremenjeno in ga je program lahko uporabil za druge namene.

Funkcija funkcije je ustvariti novo matriko, ki ni povezana z izhodom, in jo izpolniti z izbranimi elementi. Da bi bilo to polje uporabljeno pozneje, mora biti zapisano v spremenljivko.

& lt; skript async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_2 - & gt;

& lt; skript & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
naj arr = [5, 4, 3, 2, 1];
pustiti newArr = arr.slice (1 4);

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

Iz primera lahko vidimo, da je objektarrostal nespremenjen. Rezultat metode je bila nova matrikanewArr .

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

Kopirni nizi

Ta mehanizem omogoča samodejno ustvarjanje kopij brez ročnega izbiranja vsakega elementa zaporedja.

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

Klicanje metode brez argumentov začne kopirati od začetka in konca matrikenaprej . Nastali klon je popolnoma neodvisen od svojega vira in vam omogoča manipulacijo podatkov brez strahu, da jih boste izgubili za vedno.

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

Pomembno je vedeti, da se objekti javascript posredujejo z referenco. Posledično, če so elementi zaporedja objekti, potem bo njihova sprememba v kopiji povzročila isto spremembo v izvorni kodi.

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

//kopira izhodno polje
in pusti newArr = arr.slice ();
console.log (newArr); //[{a: 1}, [2, 3]]

//spremeni kopijo
newArr.a = 7;
console.log (newArr); //[{a: 7}, [2, 3]]

//spremenila je tudi izhodno polje
console.log (arr); //[{a: 7}, [2, 3]]


Brez strahu je mogoče delati z vrednostmi vrstic, številk in logičnih operatorjev, ker so popolnoma kopirane v novo zaporedje. Hkrati dodajanje in odstranjevanje postavk znotraj kloniranega niza ne vpliva na izhod.

Sorodne publikacije