JavaScript metode polja. Slice - rezati i stvarati

💖 Sviđa vam se? Podijelite vezu sa svojim prijateljima

Nizovima se može manipulirati različitim metodama koje nudi konstruktor polja.

metode pop/push i shift/unshift

Razmotrite metode pop() i push(). Ove metode omogućuju da se nizovi tretiraju kao nizovi. Stog je podatkovna struktura u kojoj je pristup elementima organiziran prema LIFO principu (engleski last in - first out, "zadnji ušao - prvi izašao"). Načelo hrpe može se usporediti s hrpom tanjura: da biste uzeli drugu s vrha, morate ukloniti gornju. Kako to radi prikazano je na slici:

Dakle, vratimo se na metode push() i pop(). Metoda push() dodaje jedan ili više novih elemenata na kraj niza i vraća njegovu novu duljinu. Metoda pop() uklanja posljednji element niza, smanjuje duljinu niza i vraća vrijednost koju je uklonio. Imajte na umu da obje ove metode mijenjaju niz na mjestu umjesto da stvaraju njegovu modificiranu kopiju.

var foo =; // foo: foo.push(1,2); // foo: Vraća 2 foo.pop(); // foo: Vraća 2 foo.push(3); // foo: Vraća 2 foo.pop(); // foo: Vraća 3 foo.push(); // foo: ] Vraća 2 foo.pop() // foo: Vraća foo.pop(); // foo: Vraća 1 var fruits = ["kruške", "banane", "jabuke"]; var ubrano = voće.pop(); document.write("Ukrao si moj " + ubrao); Pokušajte »

Metode shift() i unshift() ponašaju se slično kao pop() i push(), osim što umeću i uklanjaju elemente na početku niza. Metoda unshift() pomiče postojeće elemente prema višim indeksima kako bi napravila mjesta za nove elemente, dodaje jedan ili više elemenata na početak niza i vraća novu duljinu niza. Metoda shift() uklanja prvi element niza i vraća njegovu vrijednost, pomičući sve sljedeće elemente kako bi zauzeli prostor na početku niza.

Var f = ; // f: f.unshift(1); // f: Vraća: 1 f.unshift(22); // f: Vraća: 2 f.shift(); // f: Vraća: 22 f.unshift(3,); // f:,1] Vraća: 3 f.shift(); // f:[,1] Vraća: 3 f.shift(); // f: Vraća: f.shift(); // f: Vraća: 1

metoda spajanja

Metoda Array.join() koristi se za spajanje elemenata niza u jedan niz. Metodi možete proslijediti izborni argument niza koji će se koristiti za odvajanje elemenata u nizu. Ako razdjelnik nije naveden, tada će zadani znak razdjelnika biti zarez kada se metoda pozove.

Var a = ["Vjetar","Kiša","Vatra"]; var myVar1 = a.join(); //"Vjetar,Kiša,Vatra" var myVar2 = a.join(", "); //"Vjetar, kiša, vatra" var myVar3 = a.join(" + "); //"Vjetar + Kiša + Vatra" document.write(myVar1 + "
" + mojaVar2 + "
" + myVar3); Pokušajte »

Metoda Array.join() suprotna je metodi String.split(), koja stvara niz dijeljenjem niza na dijelove.

obrnuta metoda

Metoda Array.reverse() mijenja redoslijed elemenata u nizu i vraća niz s preuređenim elementima. Ova metoda ne stvara novi niz s promijenjenim redoslijedom elemenata, već ih mijenja u već postojećem nizu.

Var myArr = ["jedan", "dva", "tri"]; document.write(myArr.reverse()); Pokušajte »

concate metoda

Metoda Array.concat() stvara i vraća novi niz koji sadrži elemente originalnog niza na kojem je pozvana metoda concat(), sekvencijalno dopunjen vrijednostima svih argumenata proslijeđenih metodi concat(). Ako je bilo koji od ovih argumenata sam niz, tada će se dodati svi njegovi elementi. Nazivi nizova koriste se kao argumenti i navedeni su redoslijedom kojim se njihovi elementi ulančavaju.

Var a = ; a.concat(4, 5) //Vraća a.concat(); //isto - vraća a.concat(,) //Vraća

metoda sortiranja

Metoda Array.sort() sortira elemente niza na mjestu i vraća sortirani niz. Ako se metoda sort() pozove bez argumenta, ona sortira elemente niza abecednim redom (privremeno ih pretvara u nizove radi usporedbe). Kao argument, metoda sort() može uzeti funkciju usporedbe koja određuje redoslijed sortiranja elemenata.

Var a = ["Kivi", "Naranče", "Kruške"]; a.sort(); vars = a.join(", "); //Naranče, kruške, kivi document.write(s); //primjer s brojevima var myArr = ; myArr.sort(); document.write(myArr); //1,10,2 Pokušajte »

Vjerojatno ste očekivali da ćete vidjeti malo drugačiji rezultat sortiranja brojeva. Ovo sortiranje se događa jer metoda sort() sortira elemente pretvarajući ih u nizove. Stoga je redoslijed koji dobivaju niz - na kraju krajeva, "10"

Za sortiranje nekim drugim redoslijedom osim abecednim, možete proslijediti funkciju usporedbe kao argument metodi sort(). Međutim, treba napomenuti da ćemo funkciju usporedbe morati napisati sami. Ova funkcija mora imati dva parametra jer određuje koji bi se od njezina dva argumenta trebao pojaviti prvi na sortiranom popisu. Radi lakšeg razumijevanja i pisanja takve funkcije, postoji nekoliko pravila po kojima će se odrediti redoslijed elemenata:

  • Ako prvi argument mora doći prije drugog, funkcija usporedbe vraća negativan broj (ako je a
  • Ako prvi argument mora slijediti drugi, vraća se funkcija usporedbe pozitivan broj(ako je a > b)
  • Ako su dvije vrijednosti ekvivalentne (tj. njihov redoslijed nije bitan), funkcija usporedbe vraća 0 (ako je a == b)

Za usporedbu, funkcija koristi elemente niza kao svoje argumente:

Funkcija foo(a,b) ( //definirajte testnu funkciju if (a b) return 1; return 0; //if a == b ) var a = ; a.sort(foo); //samo se naziv funkcije prosljeđuje kao argument document.write(a.join(", ")); //prečac isti var a = ; a.sort(function(a,b) ( //koristi anonimnu funkciju return a - b; //funkcija vraća 0 )); dokument.pisati(a); //1,2,5,10 Pokušajte »

Prvi unos u primjeru napisan je na ovaj način kako bi se lakše razumjelo kako radi. Primijetite koliko je zgodno koristiti anonimnu funkciju u drugom isječku. Poziva se samo jednom, pa mu nema potrebe davati ime.

Napomena: Ako u nizu ima nedefiniranih elemenata, oni se premještaju na kraj niza.

metoda kriške

Metoda Array.slice() koristi se za kopiranje određenog isječka iz niza i vraća novi niz koji sadrži kopirane elemente. Izvorni niz se ne mijenja.

Sintaksa metode:

ime_niza.slice(početak, kraj);

Array_name treba zamijeniti nazivom niza iz kojeg želite izdvojiti određeni skup elemenata za novi niz. Metoda uzima dva argumenta koji definiraju početak i kraj odjeljka vraćenog polja. Metoda kopira dio niza počevši od početka do kraja, ne uključujući kraj. Ako je dan samo jedan argument, vraćeni niz će sadržavati sve elemente od navedene pozicije do kraja niza. Možete koristiti negativne indekse - oni se broje od kraja niza.

Var arr = ; arr isječak(0,3); //Vraća arr.slice(3); //Vraća arr.slice(1,-1); //Vraća arr.slice(-3,-2); //Povratak

metoda spajanja

Metoda Array.splice() je generička metoda za rad s nizovima. Modificira niz na mjestu umjesto da vraća novi modificirani niz kao što to čine metode slice() i concat(). Metoda spajanja može ukloniti elemente iz niza, umetnuti nove elemente, zamijeniti elemente - jedan po jedan i u isto vrijeme. Vraća niz koji se sastoji od uklonjenih elemenata, ako nijedan od elemenata nije uklonjen, vratit će prazan niz.

Sintaksa metode:

ime_niza.splice(indeks, broj, elem1, ..., elemN);

Prvi argument specificira indeks u polju od kojeg treba početi umetanje ili brisanje elemenata. Drugi argument navodi broj elemenata koji se uklanjaju iz niza počevši od indeksa danog u prvom argumentu, ako je drugi argument 0, nijedan element neće biti uklonjen. Ako je drugi argument izostavljen, svi elementi niza uklanjaju se iz navedenog indeksa do kraja niza. Kada koristite negativni broj pozicije, elementi će se brojati od kraja niza.

Var voće = ["naranče", "jabuke", "kruške", "grožđe"]; var deleted = fruits.splice(2,2); //vraća ["kruške", "grožđe"] document.write(izbrisano); var arr =; arr.splice(4); // Vraća ; niz je postao: arr.splice(1,2); // Vraća ; niz je postao: arr.splice(1,1); // Vraća ; niz je postao: Pokušajte »

Prva dva argumenta metode splice() određuju elemente niza koje treba ukloniti. Nakon ova dva argumenta može uslijediti bilo koji broj dodatnih argumenata koji određuju elemente koji će se umetnuti u niz, počevši od pozicije koju daje prvi argument.

Var voće = ["naranče", "jabuke"]; fruits.splice(2,0, "lubenice"); //vraća document.write(fruits); //postao ["naranče", "jabuke", "lubenice"] var arr = ; arr.splice(2,0,"a","b"); // Vraća ; postao arr.splice(2,2,); //Vraća ["a","b"]; postao ,3,4,5] Pokušajte »

Vrijedno je napomenuti da, za razliku od concat(), metoda splice() ne dijeli nizove proslijeđene kao argumente u zasebne elemente. To jest, ako se polje proslijedi metodi za umetanje, ona umeće samo polje, a ne elemente tog polja.

toString metoda

Metoda toString() pretvara elemente niza u niz koristeći zarez kao znak za razdvajanje.

Var arr = ["Mlijeko","Kruh","Kolačići"]; var hrana = arr.toString(); dokument.pisati(hrana); //Mlijeko, kruh, kolačić Probajte »

Imajte na umu da metoda vraća isti niz kao i metoda join() kada se poziva bez argumenata.

indexOf i lastIndexOf

Metoda indexOf vraća indeks elementa čija je vrijednost jednaka vrijednosti proslijeđenoj metodi kao argument.

Sintaksa metoda indexOf() i lastIndexOf():

array_name.indexOf(search_element, index) array_name.lastIndexOf(search_element, index)

Prvi argument metode specificira vrijednost elementa čiji indeks treba pronaći, drugi argument (neobavezno) označava indeks od kojeg će započeti pretraga. Ako postoji više identičnih pojavljivanja, odabire se najmanji (prvi) indeks. Ako element sa željenom vrijednošću nije pronađen, metoda će vratiti -1. Unutar metode za pretraživanje se koristi stroga usporedba (===).

Var a = ; a.indexOf(3); //vraća 2 a.indexOf(3,4); //vraća 6 a.indexOf(35); //vraća -1: nema elementa s ovom vrijednošću a.indexOf(2); // 1

Metoda lastIndexOf() također vraća indeks elementa čija je vrijednost jednaka vrijednosti proslijeđenoj metodi kao argument. Jedina razlika je u tome što metoda lastIndexOf() odabire najviši (zadnji) indeks.

Var a = ; a.lastIndexOf(3); //vraća 7 a.lastIndexOf(35); //vraća -1: nema elementa s ovom vrijednošću a.lastIndexOf(2); // 6

Metode iteratora

Dolje opisane metode su iteratori. Svi moderni preglednici za rad s nizovima imaju metode koje su dizajnirane za ponavljanje elemenata i izvođenje raznih radnji na njima. Ovo su metode forEach(), map(), filter(), every(), some, reduce() i reduceRight().

Oni ponavljaju elemente niza od 0 do duljine - 1 i, ako element postoji, prosljeđuju ga funkciji rukovatelja povratnim pozivom.

za svakoga

Sintaksa metode:

array_name.forEach(callback, thisArg)

Prvi argument je funkcija povratnog poziva koju će metoda forEach() pozvati za svaki element niza. Morate sami napisati implementaciju pozvane funkcije rukovatelja. Pozvana funkcija mora imati tri parametra: prvi parametar uzima kao argument - vrijednost elementa niza, drugi - indeks elementa, a treći - sam niz. Međutim, ako želite koristiti samo vrijednosti elemenata niza, možete napisati funkciju sa samo jednim parametrom. Drugi argument - thisArg (neobavezno) bit će proslijeđen kao this vrijednost.

Var arr = ; funkcija foo(vrijednost) ( ​​var zbroj = vrijednost * ovo; vrati document.write(zbroj + "
"); ) arr.forEach(foo, 5); //drugi argument bit će proslijeđen kao vrijednost ovog //primjera s tri parametra var a = ; a.forEach(function(el, idx, a) ( dokument. write( "a["+idx+"] = "+el+" u ["+a+"]
"); )); Pokušajte »

filtar

Sintaksa metode:

array_name.filter(callback, thisObject)

Metoda filter() stvara i vraća novi niz koji će sadržavati samo one elemente niza za koje funkcija povratnog poziva vraća true.

Funkcija isBig(element, index, array) ( //vraća brojeve koji su veći ili jednaki 10 return (element >= 10); //ako je vrijednost elementa veća ili jednaka 10, izraz će vratiti true ) var filtered = .filter(isBig) ; //filtrirano

karta

Metoda map() stvara i vraća novi niz, koji će se sastojati od rezultata pozivanja callback(item, idx, ar) funkcije za svaki element niza.

Var a = ; var b = a.map(function(item, idx, arr) ( return item * item; )); // b =

svaki i neki

Metoda every() vraća true ako za sve elemente niza navedena funkcija koja se koristi za njihovu provjeru vraća true.

Metoda some() vraća true ako, tijekom testa u navedenoj funkciji, jedan ili više elemenata vrati true.

Var a = ; a.svaki(funkcija(x) ( return x 10; )) //točno: jedan broj > 10

smanjiti i smanjitiDesno

Sintaksa metode:

array_name.reduce(callback, initialValue) array_name.reduceRight(callback, initialValue)

Metoda reduce() primjenjuje navedenu funkciju (povratni poziv) na dvije vrijednosti u nizu odjednom, prolazeći kroz elemente slijeva nadesno, zadržavajući međurezultat.

Argumenti funkcije povratnog poziva: (prethodnaVrijednost, trenutnaStavka, indeks, polje)

  • previousValue - povratni rezultat funkcije povratnog poziva (poznat i kao međurezultat)
  • currentItem - trenutni element niza (elementi su redom poredani s lijeva na desno)
  • index - indeks trenutnog elementa
  • niz - niz koji treba obraditi

initialValue (inicijalizirajuća vrijednost) - objekt koji se koristi kao prvi argument prvog poziva funkcije povratnog poziva. Jednostavno rečeno, vrijednost previousValue pri prvom pozivu jednaka je initialValue. Ako nema početne vrijednosti, onda je ona jednaka prvom elementu niza, a iteracija počinje od drugog:

Var a = ; funkcija foo(prevNum,curNum) ( sum = prevNum + curNum; alert(sum); return sum; ) var result = a.reduce(foo, 0); document.write(rezultat); Pokušajte »

Pogledajmo kako ovaj primjer radi. Prvi argumenti funkcije foo su:

  • prevNum = 0 (budući da je initialValue 0)
  • curNum = 1 (trenutni element je 1. element niza)

1 se dodaje broju 0. Ovaj rezultat (zbroj: 1) bit će proslijeđen kao prevNum sljedeći put kada se funkcija pokrene. I tako sve dok se ne dođe do posljednjeg elementa. Vraćeni rezultat je zbroj iz posljednjeg izvođenja, koji je 15 (1+2+3+4+5).

Metoda reduceRight radi slično kao metoda smanjivanja, ali ponavlja preko niza s desna na lijevo:

Var a = ["h","o","m","e"]; funkcijska traka(prevStr, curItem) ( return prevStr + curItem; ) document.write(a.reduceRight(bar)); //emoh

Definicija i primjena

Metoda JavaScript splice() omogućuje promjenu sadržaja niza uklanjanjem postojećih elemenata i/ili dodavanjem novih elemenata u niz.

Imajte na umu da metoda splice() mijenja postojeći niz i ne vraća novi. Uklonjeni elementi vraćaju se kao novi objekt polja.

Podrška za preglednik metoda
Opera
IExplorer
rub
spoj()DaDaDaDaDaDa
JavaScript sintaksa: // samo s indeksom niz.splice( početak) // označava indeks i broj elemenata koji se uklanjaju niz.splice( početak, deleteCount) // označava indeks, broj elemenata koji se uklanjaju i dodavanje elemenata niz.splice( početak, deleteCount, element1, element2, ..., elementX) JavaScript verzija ECMAScript 3 (implementirano u JavaScriptu 1.2) Vrijednosti parametara Opis parametra
početak Cijeli broj koji navodi indeks polja iz kojeg će elementi biti uklonjeni iz polja i/ili dodani u polje. Dopuštene su negativne vrijednosti, u kojem će se slučaju indeks iz kojeg će se metoda pozvati izračunati prema sljedećoj formuli: duljina (dužina niza) + početak. Potreban.
deleteCount Cijeli broj koji navodi broj elemenata za uklanjanje iz niza, počevši od indeksa navedenog u početak. Ako deleteCount je 0, nijedan element nije uklonjen. Ako vrijednost deleteCount veći od broja preostalih elemenata u nizu, tada će svi preostali elementi niza biti uklonjeni. izborna vrijednost, negativne vrijednosti nije dozvoljeno .
elementi) Element ili elementi koji se dodaju u polje. Indeks niza u koji će se umetnuti novi elementi odgovara parametru početak. Neobavezna vrijednost.
Primjer korištenja var x = ; // inicijalizirati varijablu koja sadrži niz x.splice(3 ); x.spoj(-3); // vrijednost varijable x.splice(2 , 2 ); // vrijednost varijable x.splice(-2 , 2 ); // vrijednost varijable x.splice(0 , 2 , "z ", true ); // vrijednost varijable ["z", true, 3, "a", "b", "c"] x.splice(3 , 0 , "z ", "z ", "z "); // vrijednost varijable Metoda splice() u Javascript nizovima mijenja sadržaj niza, dodajući nove elemente, uklanjajući stare. Sintaksa

Sintaksa mu je sljedeća:

Array.splice(index, howMany, [, ..., elementN]);

Pojedinosti o parametrima
  • indeks - Indeks od kojeg treba početi mijenjati niz.
  • howMany - cijeli broj koji označava broj starih elemenata niza za uklanjanje. Ako je howMany 0, nijedan element se ne uklanja.
  • element1, ..., elementN - Elementi koje treba dodati nizu. Ako ne navedete nijedan element, splice jednostavno uklanja elemente iz niza.
Povratna vrijednost

Vraća dohvaćeno polje na temelju proslijeđenih parametara.

Primjer

Pokušajte sa sljedećim primjerom.

JavaScript - nizovi. metoda spajanja var arr = ["naranča", "dinja", "mlijeko", "šećer", "kava"]; var uklonjen = arr.splice(2, 0, "voda"); document.write("Nakon dodavanja 1: " + arr); document.write("
uklonjeno: " + uklonjeno); uklonjeno = arr.splice(3, 1); document.write("
Nakon dodavanja 1: " + arr); document.write("
uklonjeno: " + uklonjeno);

Izlaz Nakon dodavanja 1: naranča, dinja, voda, mlijeko, šećer, uklonjeno kava: Nakon dodavanja 1: naranča, dinja, voda, šećer, kava uklonjeno: mlijeko

Metoda splice() mijenja sadržaj niza uklanjanjem ili zamjenom postojećih elemenata i/ili dodavanjem novih elemenata na mjesto.

Izvor za ovaj interaktivni primjer pohranjen je u GitHub repozitorij. Ako želite doprinijeti projektu interaktivnih primjera, klonirajte https://github.com/mdn/interactive-examples i pošaljite nam zahtjev za povlačenje.

Sintaksa let arrDeletedItems = array .splice(start [, deleteCount [, item1 [, item2 [, ...]]]]) Parametri start Indeks od kojeg treba početi mijenjati niz. Ako je veći od duljine niza, početak će biti postavljen na duljinu niza. Ako je negativan, počet će toliko elemenata od kraja niza. (U ovom slučaju, ishodište -1, što znači - n je indeks n-tog zadnjeg elementa, i stoga je ekvivalentan indeksu niza .length - n.) Ako je niz .length + start manji od 0, to počet će od indeksa 0 . deleteCount Opcijski Cijeli broj koji pokazuje broj elemenata u nizu koje treba ukloniti od početka. Ako je deleteCount izostavljen, ili ako je njegova vrijednost jednaka ili veća od array .length - start (to jest, ako je jednaka ili veća od broja preostalih elemenata u nizu, počevši od početka), tada će svi elementi od početka do kraja niza bit će izbrisani.

Napomena: u IE8 neće izbrisati sve ako se izostavi deleteCount.

Ako je deleteCount 0 ili negativan, nijedan element se ne uklanja. U tom slučaju trebali biste navesti barem jedan novi element (vidi dolje). item1, item2, ... Izborno Elementi za dodavanje nizu, počevši od početka. Ako ne navedete nijedan element, splice() će ukloniti samo elemente iz niza.

povratna vrijednost

Niz koji sadrži izbrisane elemente.

Ako se ukloni samo jedan element, vraća se niz od jednog elementa.

Ako nijedan element nije uklonjen, vraća se prazan niz.

Opis

Ako se navedeni broj elemenata za umetanje razlikuje od broja elemenata koji se uklanjaju, duljina niza bit će drugačija na kraju poziva.

Primjeri Uklonite 0 (nula) elemenata iz indeksa 2 i umetnite "bubanj" let myFish = ["anđeo", "klaun", "mandarina", "jesetra"] pusti uklonjen = myFish.splice(2, 0, "bubanj" ) // myFish je ["anđeo", "klaun", "bubanj", "mandarina", "jesetra"] // uklonjeno je , nema uklonjenih elemenata Uklonite 0 (nula) elemenata iz indeksa 2 i umetnite "bubanj" i "guitar" let myFish = ["anđeo", "klaun", "mandarina", "jesetra"] neka uklonjen = myFish.splice(2, 0, "bubanj", "gitara") // myFish je ["anđeo" , "klaun", "bubanj", "gitara", "mandarina", "jesetra"] // uklonjeno je , nema uklonjenih elemenata Ukloni 1 element iz indeksa 3 neka myFish = ["anđeo", "klaun", "bubanj" , "mandarina", "jesetra"] neka uklonjeno = myFish.splice(3, 1) // uklonjeno je ["mandarina"] // myFish je ["anđeo", "klaun", "bubanj", "jesetra"] Uklonite 1 element iz indeksa 2 i umetnite "truba" let myFish = ["anđeo", "klaun", "bubanj", "jesetra"] let uklonjen = myFish.splice(2, 1, "truba") // myFish je ["anđeo", "klaun", "truba", "jesetra"] // uklonjeno je ["bubanj"] Uklonite 2 elementa iz indeksa 0 i umetnite "papiga", "anemona" i "plava" neka myFish = ["anđeo", "klaun", "truba", "jesetra"] neka je uklonjeno = myFish.splice(0, 2, "papiga", "anemona", "plava") // myFish je ["papiga", " anemone", "plava", "truba", "jesetra"] // uklonjeno je ["anđeo", "klaun"] Uklonite 2 elementa iz indeksa 2 neka myFish = ["papiga", "anemona", "plava", "truba", "jesetra"] neka uklonjeno = myFish.splice(2, 2) // mojaRiba je ["papiga", "anemona", "jesetra"] // uklonjeno je ["plava", "truba"] Ukloni 1 element iz indeksa -2 let myFish = ["anđeo", "klaun", "mandarina", "jesetra"] let uklonjen = myFish.splice(-2, 1) // myFish je ["anđeo", "klaun" , "jesetra"] // uklonjeno je ["mandarina"] Ukloni sve elemente nakon indeksa 2 (uklj.) let myFish = ["anđeo", "klaun", "mandarina", "jesetra"] pusti uklonjeno = myFish.splice (2) // myFish je ["anđeo", "klaun"] // uklonjeno je ["mandarina", "jesetra"] Specifikacije Komentar statusa specifikacije
ECMAScript najnoviji nacrt (ECMA-262)
Nacrt
ECMAScript 2015 (6. izdanje, ECMA-262)
Definicija "Array.prototype.splice" u toj specifikaciji.
standard
ECMAScript 5.1 (ECMA-262)
Definicija "Array.prototype.splice" u toj specifikaciji.
standard
ECMAScript 3. izdanje (ECMA-262) standard početna definicija. Implementirano u JavaScriptu 1.2.
Kompatibilnost preglednika

Tablica kompatibilnosti na ovoj stranici generirana je iz strukturiranih podataka. Ako želite doprinijeti podacima, pogledajte https://github.com/mdn/browser-compat-data i pošaljite nam zahtjev za povlačenje.

Ažurirajte podatke o kompatibilnosti na GitHubu

Mobilni poslužitelj za stolno računalo Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome za Android Firefox za Android Opera za Android Safari na iOS-u Samsung Internet Node.jsspajanje
Puna podrška za Chrome 1Edge Potpuna podrška 12Firefox Puna podrška 1IE Puna podrška 5.5

bilješke

Puna podrška 5.5

bilješke

bilješke Od Internet Explorera 5.5 do 8, svi elementi niza neće biti izbrisani ako se izostavi deleteCount. Ovo ponašanje je popravljeno u Internet Exploreru 9.
Opera Potpuna podrška DaSafari puna podrška 1WebView Android Puna podrška DaChrome Android Puna podrška 18Firefox Android Puna podrška 4Opera Android Puna podrška DaSafari iOS Potpuna podrška 1Samsung Internet Android Puna podrška Danodejs Puna podrška Da
Legenda Puna podrška Puna podrška Vidi napomene o implementaciji. Pogledajte napomene o implementaciji.

Sve prednosti ugrađenog JavaScript metode mogu se cijeniti samo pravilnim razumijevanjem načina na koji rade. U ovom ćemo članku pokriti tri metode: slice () , splice () i split () . Čak ih i iskusni programeri često zbunjuju: možda zato što su sva tri imena toliko slična.

Studenti i programeri početnici: pažljivo pročitajte ovaj članak - možda će vas na intervjuu pitati o ove tri metode.

Na kraju ćete pronaći sažetak informacija o sve tri metode. Počnimo.

Nizovi u JavaScriptu

Prvo morate razumjeti kako JavaScript nizovi funkcioniraju. Kao i drugi programski jezici, polja se koriste za pohranjivanje više jedinica podataka. Razlika je u tome što JavaScript nizovi mogu sadržavati više tipova podataka u isto vrijeme.

Za rad s takvim nizovima potrebne su nam JavaScript metode: na primjer, slice () & splice () . Možete stvoriti niz poput ovog:

Neka ArrayDefinition = ; // Deklaracija niza u JS-u

Kreirajmo sada još jedan niz s podacima različitih vrsta:

neka niz = ;

U JavaScriptu možete stvarati nizove pomoću različiti tipovi podaci: s brojevima, nizovima i booleovim vrijednostima.

kriška()

Metoda slice() kopira dati dio niza i vraća taj kopirani dio kao novi niz. Izvorni niz se ne mijenja.

Isječak niza (od, do);

  • Od: Izrežite niz počevši od ovog elementa
  • Do: reže niz do ovog elementa

Na primjer, želim izrezati prva tri elementa iz gore spomenutog niza. Prvi element niza uvijek je 0, pa koristim 0 kao parametar from.

Niz --> 1 // uključen niz --> 2 // uključen niz --> 3 // uključen niz --> "hello world" // nije uključen

Ovdje se možete zbuniti! Zato sam proglasio "do".

Neka newArray = array.slice(0, 3); // povratna vrijednost je također niz

Na kraju, stvaram novi niz i povezujem ga s varijablom newArray. Pogledajmo rezultat:

Rezanje niza i dodavanje elemenata u novi niz


Varijabla newArray postaje novi niz, originalni niz ostaje nepromijenjen.

Važna napomena: Metoda Slice() također se može koristiti na nizovima.

Spoj()

Naziv ove metode sličan je slice(): programeri se često zbune u tako sličnim imenima. Metoda splice() dodaje i uklanja elemente iz niza, mijenjajući ga. Pogledajmo kako dodati i ukloniti elemente pomoću metode splice():

Uklanjanje elemenata

Za uklanjanje elemenata unesite element s kojim počinjete (indeks) i broj elemenata za uklanjanje (broj elemenata):

Array Splice (indeks, broj elemenata);

Parametar Index  -  početna je točka za brisanje elemenata. Elementi s rednim brojem manjim od navedenog parametra indeksa neće biti uklonjeni:

Spajanje polja(2); // Svaki element počevši od indeksa 2 bit će uklonjen

Ako ne navedete drugi parametar, svi elementi od navedenog indeksnog parametra do kraja bit će izbrisani:

Kao drugi primjer, specificirao sam 1 kao drugi parametar: dakle, svaki put kada se metoda splice() ponovi, ona će ukloniti jedan element, počevši od drugog:

Spajanje polja (2, 1);

Niz prije metode splice().

Splice() primijenjen jednom:

Element 3 je uklonjen: stoga element "hello world" sada ima redni broj 2

Splice() primijenjen dva puta:

Ovaj put je uklonjen element "hello world" jer je njegov indeksni broj 2

Tako možete nastaviti dok nema elemenata s rednim brojem 2.

Dodavanje elemenata

Da biste dodali elemente pomoću splice(), morate ih unijeti kao treći, četvrti i peti element (ovisno o tome koliko elemenata želite dodati):

Array.splice(indeks, broj elemenata, element, element);

Kao primjer, dodajmo elemente a i b na sam početak niza:

Spajanje polja (0, 0, "a", "b");


Elementi a i b dodaju se na početak niza

podjela()

Metode Slice() i splice() koriste se za nizove. Za stringove se koristi metoda split(). Rastavlja niz u podnizove i vraća ih kao niz. Ova metoda ima 2 parametra, od kojih su oba izborna.

Podjela niza (razdjelnik, granica);

  • Razdjelnik: određuje kako će niz biti podijeljen na podstringove: zarez, znak itd.
  • Ograničenje: ograničava broj podnizova na zadani broj

Metoda split() ne radi izravno s nizovima. Međutim, prvo možete pretvoriti elemente polja u nizove, a zatim primijeniti metodu split().

Pogledajmo kako radi.

Prvo pretvaramo niz u niz pomoću metode toString():

Neka myString = array.toString();

Zatim dijelimo niz myString zarezima i ograničavamo broj podnizova na tri. Zatim pretvaramo nizove u niz:

Neka newArray = myString.split(",", 3);

Prva 3 elementa vraćaju se kao niz

Dakle, elementi niza myString su odvojeni zarezima. Postavili smo ograničenje od 3 podniza, tako da se prva 3 elementa vraćaju kao niz.

Napomena: Korištenje naredbe podijeljen niz (""); svi znakovi u nizu mogu se podijeliti u podnizove.


Svi znakovi su podijeljeni u podnizove

Sinopsis: Slice()
  • Kopira elemente iz niza
  • Vraća ih u novom nizu
  • Ne mijenja izvorni niz
  • Reže niz pomoću parametara from i until: array.slice (from, until)
  • Ne uključuje parametar naveden u "do"
  • Koristi se u nizovima i nizovima
Spoj()
  • Dodaje i uklanja elemente iz niza
  • Vraća niz uklonjenih elemenata
  • Mijenja niz
  • Dodavanje elemenata: array.splice(indeks, broj elemenata, element)
  • Uklanjanje elemenata: array.splice(index, broj elemenata)
  • Koristi se samo u nizovima
podjela()
  • Podijeli nizove na podnizove
  • Vraća ih kao niz
  • 2 parametra, od kojih su oba opcionalna: string.split(separator, limit)
  • Ne mijenja izvorni niz
  • Koristi se samo u nizovima

JavaScript ima mnoge druge ugrađene metode za rad s nizovima i nizovima. Ako naučite kako ih koristiti, programiranje postaje puno lakše.



reci prijateljima