Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • Korisne tehnike JavaScript polja. Radite kao profesionalac s nizovima u JavaScriptu

Korisne tehnike JavaScript polja. Radite kao profesionalac s nizovima u JavaScriptu

U ovom članku ćemo pogledati JavaScript niz i njegove sastavne dijelove. JavaScript je idealno dizajniran za programiranje. Zapravo, implementira jezik ECMAScript (referenca ECMA-262).

Gdje se koristi JavaScript? Koristi se kao ugrađeni jezik kako bi se definirao programski put do predmeta aplikacije. Može se naći u preglednicima: tamo se koristi kao skriptni jezik koji web stranicama daje interaktivnost.

Najvažnije arhitektonske značajke ovog proizvoda su dinamično i slabo tipkanje, automatsko upravljanje memorijom, savršeno programiranje, funkcije koje su objekti prve kategorije.

Općenito, na JavaScript su utjecali različiti razlozi, jer su tijekom razvoja htjeli stvoriti jezik sličan Javi, ali jednostavan za korištenje programerima. Usput, JavaScript nije u vlasništvu nijednog poduzeća ili organizacije, što ga čini za razliku od brojnih stilova programiranja koje koriste web programeri.

Imajte na umu da je JavaScript registrirani zaštitni znak tvrtke Oracle Corporation.

Što je niz?

Niz se naziva niz koji pohranjuje numerirane vrijednosti. Svaka takva vrijednost se naziva komponentom niza, a znamenka kojoj je komponenta pridružena naziva se indeksom. JavaScript polje nije upisano. To znači da dijelovi niza mogu biti bilo koje vrste, a različiti dijelovi koji pripadaju istom nizu su potpuno različitih tipova.

Osim toga, JavaScript niz je dinamičan, što znači da nema potrebe za deklariranjem fiksne veličine. Uostalom, u bilo kojem trenutku možete dodati nove detalje.

Proizvodnja niza

Koristeći JavaScript, stvaranje niza uopće nije teško. Za to postoje dvije metode. Prvi uključuje izradu niza pomoću doslovnog - uglatih zagrada, unutar kojeg je popis dijelova odvojenih zarezima.

  • var prazno =; // prazan niz;
  • var brojevi =; // niz s pet digitalnih komponenti;
  • var diff =; // niz s tri elementa različitih tipova.

Obično to ne zahtijeva da vrijednosti budu jednostavne (nizovi i brojevi). To također može biti bilo koji drugi izraz, na primjer, literali subjekta, druge funkcije i nizovi.

Drugi način stvaranja niza je pozivanje dizajnerskog polja (). Možete ga pozvati na tri načina:

  • Pozivanje dizajnera bez razloga: var b - novi niz (). To omogućuje stvaranje praznog niza ekvivalentnog praznom literalu.
  • Konstruktor eksplicitno specificira vrijednost n komponenti niza: var b = novi niz (1, 3, 5, 8, "string", true). U ovom slučaju, dizajneru se prikazuje popis argumenata koji se pretvaraju u komponente novog niza. Argumenti se zapisuju u niz na mjestu na kojem su navedeni.
  • Određivanje površine za naknadnu dodjelu vrijednosti. To se postiže tako da se prilikom otkrivanja niza navede jedan broj zatvoren u zagrade: var b = novi niz (5). Ova metoda detekcije uključuje dodjeljivanje potrebnog broja komponenti u niz (od kojih je svaka navedena kao nedefinirana) s mogućnošću naknadne dodjele vrijednosti tijekom prezentacije. Ovaj obrazac se obično koristi za prethodno postavljanje Javascript niza čija je duljina unaprijed poznata.

Pisanje, čitanje i dodavanje detalja niza

Do komponenti niza možete doći pomoću operatora. Usput, sve komponente u JavaScriptu su numerirane počevši od nule. Da biste dobili potrebnu stavku, navedite njen broj u. U pravilu se pojedinosti mogu mijenjati. A da biste dodali JavaScript u niz, trebate samo dodijeliti novu vrijednost.

Treba napomenuti da JavaScript nizovi mogu pohraniti bilo koji broj elemenata bilo koje vrste.

Duljina niza

Dakle, znamo, duljina niza općenito je zanimljiv fenomen. Razmotrimo ga detaljnije. Svi nizovi, bilo da su izrađeni pomoću dizajnera Array () ili identificirani pomoću literala polja, imaju specifično svojstvo duljine koje priziva ukupan broj pohranjenih elemenata. Budući da niz može sadržavati nedefinirane detalje (označene s nedefinirano), točniji izraz zvuči ovako: kvaliteta duljine je uvijek veća za jedan od najvećeg broja (indeksa) komponente polja. Kvaliteta duljine automatski se prilagođava kako bi ostala točna kada se novi dijelovi pojave u nizu.

Možete koristiti svojstvo duljine da bi se pojavila zadnja komponenta niza.

Posljednji dio ima indeks jedan manji od veličine niza. Uostalom, odbrojavanje uvijek počinje od nule. Oh, ovaj JavaScript! Duljina niza ovisi o točnom broju elemenata. Stoga, ako ne znate koliko bi ih trebalo biti, ali se trebate pozvati na završni element niza, trebate koristiti notaciju: v.length - 1.

Iteracija preko detalja niza

Vrlo često se svojstvo duljine koristi za ponavljanje detalja niza u petlji:

  • var fruits = ["jagoda", "breskva", "jabuka", "banana"];
  • za (var I = 0; i< fruits.lenght; i++);
  • dokument.pisati (plodovi [i] + "...").

U ovom primjeru čini se da su komponente ugniježđene uzastopno i počinju od prvog dijela koji je indeksiran na nuli. Ako to nije slučaj, prije pozivanja svakog elementa niza potrebno je provjeriti je li definiran.

Petlja se također ponekad koristi za inicijalizaciju komponenti.

Uzgoj i skraćivanje niza

Pitam se kako koristiti JavaScript za dodavanje niza u niz? U procesu rada s nizovima automatski se poboljšava kvaliteta duljine, zbog čega se moramo sami pobrinuti za to. Jedna stvar koju treba zapamtiti je da svojstvo duljine nije samo čitljivo, već i upisano. Ako se kvaliteti duljine dodijeli vrijednost koja je manja od trenutne, tada se niz smanjuje na navedenu vrijednost. Sve komponente koje nisu u novom rasponu indeksa se odbacuju i njihove vrijednosti se gube, čak i ako se duljina kasnije vrati — vrijednosti se ne vraćaju.

Vrlo je lako izbrisati niz ovako: foo.length = 0.

Ako je kvaliteta duljine veća od trenutne vrijednosti, novi neidentificirani detalji će se pojaviti na kraju niza, što će ga povećati na potrebnu veličinu.

Uklanjanje dijelova uzorka

Operator delete navodi nedefinirano u komponenti polja, ali nastavlja postojati. Ako trebate ukloniti element iz JavaScript polja tako da se preostali dijelovi premjeste u slobodni prostor, trebate koristiti jednu od unaprijed definiranih metoda niza. Metoda Array.shift () eliminira prvu komponentu, pop () završnu komponentu, a metoda splice () eliminira jednu ili niz komponenti bilo gdje u nizu.

Nizovi su višedimenzionalni

Čini se da smo to malo shvatili, dvodimenzionalni nizovi su ono što treba razmotriti sljedeće. Zapamtite da JavaScript nizovi mogu sadržavati druge elemente kao komponente? Ova značajka se koristi za izradu višedimenzionalnih nizova. Da biste posjetili komponente u nizu nizova, dovoljno je dvaput primijeniti uglate zagrade.

Asocijativni nizovi

Sada istražimo kako zaštitni znak JavaScript koristi asocijativne nizove. Da bismo to učinili, moramo pogledati u teoriju: asocijativni nizovi se ponekad nazivaju hash tablicama. Zahvaljujući njima, umjesto indeksa se koriste nizovi. Upotreba takvih konstrukcija slična je korištenju imena svojstva jednostavnog objekta, ali u ovom slučaju, kada se rad izvodi u formatu polja. Budući da u JavaScriptu nema načina rada s asocijativnim nizovima, oni se koriste mnogo rjeđe od običnih. Treba napomenuti da oni još uvijek mogu biti korisni za pohranu podataka i olakšati pamćenje pojedinosti kojima je potrebno pristupiti.

Izlaz niza

Što sada učimo u JavaScript sustavu? Prikaz niza u dijaloškom okviru (na zaslonu monitora), kao i prikaz vrijednosti komponenti niza.

Ako trebate prikazati vrijednosti svih komponenti u programu, onda je zgodno koristiti izraz for za to. Zanimljivo je da se varijabla brojača pravila for koristi kao indeks komponente niza.

Čišćenje

Da biste filtrirali JavaScript polje, morate nulti njegovu duljinu:

  • var myArray =;
  • myArray.length = 0.
  • jasno: funkcija () (;
  • this.duljina = 0;
  • vrati ovo;

Dodavanje i uklanjanje komponenti

Pa, nastavimo dalje proučavati ovaj zanimljivi JavaScript jezik. Element polja može se ukloniti i dodati na isti način kao i obična svojstva drugih objekata. Ali postoje neke razlike: dodavanje numeričkih svojstava može promijeniti kvalitetu duljine, a izmjena svojstva duljine može eliminirati numeričke kvalitete. U principu, algoritam za postavljanje kvaliteta nizova je sljedeći:

  • Prilikom dodavanja nepoznatog digitalnog svojstva i, ako je duljina jednaka ili manja od i, duljina se određuje kao i + 1.
  • Prilikom promjene kvalitete duljine izvode se sljedeće radnje: ako je dodijeljena vrijednost manja od nule, tada se baca RangeError. Eliminiraju se sve brojčane kvalitete i indeksi koji su jednaki novoj duljini i koji su veći.

Općenito, uklanjanje elementa iz JavaScript polja nije teško. Uostalom, čak i postavljanje duljine, morate ukloniti "dodatne" komponente iz nje. Stoga slijedi opcija čišćenja niza. Ako dodijeljena varijabla praznog novog niza iz nekog razloga ne odgovara, ali je potrebno nulirati trenutnu, dovoljno je kvaliteti duljine dodijeliti vrijednost nule.

Metode poništavanja, pomicanja, iskakanja i pritiska

Iako se komponente niza ručno mijenjaju, mnogi preporučuju korištenje ugrađenih metoda za to. Upravo ta nijansa jamči ispravnu vrijednost kvalitete duljine i odsutnost praznina u nizu. Usput, ispravna duljina kvalitete odgovarat će broju komponenti.

Push metoda prenosi prenesene dijelove na kraj niza. Pop metoda vraća završnu komponentu i uklanja je.

Općenito, u Internet Exploreru ranijem od osme verzije, unshift može vratiti nedefiniranu, u drugim preglednicima - novu vrijednost za duljinu. Stoga je bolje ne oslanjati se na povratnu vrijednost iz unshifta.

Dodavanje i uklanjanje dijelova u sredini uzorka

Ako trebate izbrisati JavaScript polje, što trebate učiniti? Poznato je da metoda spajanja ima potpis Array.prototype.splice.

Uklanja deleteCount komponenti iz niza, počevši od početnog indeksa. Ako je proslijeđeno više od dva argumenta, svi sljedeći argumenti u nizu se stavljaju umjesto poništenih. Ako je početak minus, tada će indeks s kojeg će se nastaviti naplata biti jednak duljini + početak. Povratak u niz događa se iz uklonjenih elemenata.

Zapravo, koristeći metodu spajanja, možete ukloniti komponente iz sredine niza ili dodati koliko god želite bilo gdje u nizu.

U najjednostavnijem obliku, ako trebate izbrisati komponentu s indeksom i, trebate zatražiti metodu spajanja iz niza s parametrima i i 1.

U osnovi, drugi parametar za metodu spajanja nije obavezan, ali ponašanje funkcije s jednim argumentom razlikuje se u svakom pregledniku.

Na primjer, u Firefoxu, u najnovijim varijacijama Opera, u Safariju i u Chromeu, svi detalji će biti uklonjeni do kraja niza.

Nijedna komponenta neće biti eliminirana u IE. U prvim verzijama Opera, ponašanje se ne može predvidjeti - jedan dio s indeksom start - 1 bit će uklonjen. Stoga uvijek trebate proslijediti barem dvije komponente ovoj metodi.

Ključevi

Naravno, tijekom učenja JavaScripta, asocijativni nizovi, kao što je ranije spomenuto, također se moraju imati na umu. Ovo je apstraktna vrsta informacija (sučelje za pohranu podataka), koja vam omogućuje spremanje parova oblika "(ključ, vrijednost)" i podržava operacije dodavanja para, kao i uklanjanje i traženje para pomoću ključ:

PRONAĐI (ključ).

INSERT (vrijednost, ključ).

UKLONITI (ključ).

Pretpostavlja se da se dva para sa sličnim ključevima ne mogu pohraniti u asocijativni niz. U paru k + v, v se zove vrijednost povezana s ključem k. Semantika i nazivi gornjih operacija u različitim implementacijama takvih nizova mogu biti različiti.

Dakle, akcija FIND (ključ) vraća vrijednost pridruženu danom ključu, ili nekom specifičnom UNDEF objektu, što znači da ne postoji vrijednost pridružena zadanom ključu. Druge dvije akcije ne vraćaju ništa (osim je li operacija bila uspješna).

Općenito, sa stajališta sučelja, prikladno je asocijativni niz smatrati jednostavnim nizom, u kojem se kao indeksi mogu koristiti ne samo cijeli brojevi, već i vrijednosti drugih vrsta, na primjer, nizovi.

Usput, podrška za takve nizove dostupna je u mnogim interpretiranim programskim jezicima visoke razine kao što su PHP, Perl, Ruby, Python, Tcl, JavaScript i drugi. Za jezike koji nemaju ugrađene alate za rad s asocijativnim nizovima stvoren je ogroman broj implementacija u obliku knjižnica.

Primjer asocijativnog niza je telefonski imenik. U ovoj varijanti vrijednost je kompleks "F. Ime + adresa", a ključ - telefonski broj. Jedan telefonski broj ima jednog vlasnika, ali jedna osoba može posjedovati više brojeva.

Asocijativna proširenja

Treba napomenuti da najpoznatija proširenja uključuju sljedeće radnje:

  • SVAKI - "prošetati" kroz sve parove da se spasi.
  • CLEAR - ukloniti sve zapise.
  • MIN - pronađite par s najnižom vrijednošću ključa.
  • MAX - pronađite par s najvećom vrijednošću ključa.

U posljednje dvije opcije morate odrediti radnju usporedbe na tipkama.

Implementacije asocijativnog niza

Postoji mnogo različitih implementacija asocijativnog niza. Najčešća implementacija može se temeljiti na jednostavnom nizu, čije su komponente parovi (vrijednost, ključ). Da biste ubrzali operacije pretraživanja, možete sortirati komponente ovog niza po ključu i pronaći pomoću No to će povećati vremensko razdoblje potrebno za dodavanje novog para, budući da ćete morati "razdvojiti" komponente niza kako bi se za pakiranje svježeg zapisa u praznu ćeliju koja se pojavi.

Najpoznatije implementacije temelje se na raznim stablima pretraživanja. Na primjer, u tipičnoj čitaonici C ++ STL, spremnik karte implementiran je na temelju crno-crvenog stabla. U stilovima Ruby, Tcl, Python koristi se jedna od vrsta hash tablica. Postoje i druge implementacije.

Općenito, svaka implementacija ima svoje prednosti i nedostatke. Važno je da se sve tri radnje izvode i u prosjeku iu najgoroj nijansi u razdoblju od O (log n), gdje je n trenutni broj spremljenih parova. Za podudarna stabla pretraživanja (uključujući crno-crvena stabla) ovaj je uvjet ispunjen.

Poznato je da se u implementacijama temeljenim na hash tablicama prosječno vrijeme definira kao O (1), što je bolje nego u akcijama temeljenim na stablima pretraživanja. Naravno, to ne jamči brzo izvođenje pojedinačnih operacija: trajanje INSERT-a je u najgorem slučaju označeno kao O (n). Proces INSERT traje dugo, kada faktor popunjavanja dosegne svoju najvišu točku i postaje potrebno rekonstruirati indeks hash tablice.

Inače, ovi hash-listi su loši jer se ne mogu koristiti za brze dodatne radnje MAX, MIN i algoritam za zaobilaženje svih spremljenih parova u opadajućem ili rastućem redoslijedu ključeva.

  • Prijevod

Većina aplikacija koje se danas razvijaju moraju biti u interakciji s nekom vrstom skupa podataka. Rukovanje stavkama u zbirkama uobičajena je operacija s kojom ste se možda susreli. Kada radite, na primjer, s nizovima, možete bez oklijevanja koristiti uobičajenu for petlju, koja izgleda otprilike ovako: for (var i = 0; i< value.length; i++){} . Однако, лучше, всё-таки, смотреть на вещи шире.

Pretpostavimo da trebamo prikazati popis proizvoda i, ako je potrebno, podijeliti ga u kategorije, filtrirati, pretražiti, izmijeniti ovaj popis ili njegove elemente. Možda ćete morati brzo izvesti neke izračune koji uključuju elemente popisa. Recimo da nečemu trebate dodati nešto, nešto pomnožiti s nečim. Možete li pronaći alate u JavaScriptu koji čine bržim i praktičnijim rješavanje takvih problema od korištenja obične for petlje?

Zapravo, JavaScript pruža takve mogućnosti. O nekima od njih raspravlja se u materijalu čiji prijevod danas predstavljamo vašoj pozornosti. Konkretno, govorimo o operatoru proširenja, for ... petlje i metodama include (), some (), every (), filter (), map () i reduce (). Ovdje ćemo uglavnom govoriti o nizovima, ali tehnike o kojima se ovdje raspravlja obično su prikladne za rad s drugim vrstama objekata.

Treba napomenuti da pregledi suvremenih pristupa razvoju u JS-u obično uključuju primjere pripremljene pomoću funkcija strelica. Možda ih ne koristite baš često – možda zato što vam se ne sviđaju, možda zato što ne želite provoditi previše vremena učeći nešto novo, ili vam jednostavno ne idu. Stoga će se ovdje u većini situacija prikazati dvije opcije za izvođenje istih radnji: korištenje običnih funkcija (ES5) i korištenje funkcija strelica (ES6). Za one nove funkcije strelice, imajte na umu da funkcije strelice nisu ekvivalentne deklaracijama funkcija i funkcijskim izrazima. Ne vrijedi zamijeniti jedno drugim. Konkretno, to je zbog činjenice da se ova ključna riječ različito ponaša u običnim funkcijama i funkcijama strelice.

1. Operator proširenja

Operator širenja omogućuje vam da "proširite" nizove zamjenom njihovih elemenata umjesto nizova na mjestu gdje se koristi ovaj operator. Sličan pristup predložen je za objektne literale.

▍ Prednosti operatera širenja

  • Ovo je jednostavan i brz način za "izvlačenje" njegovih pojedinačnih elemenata iz niza.
  • Ovaj operator je prikladan za rad s literalima polja i objekta.
  • To je brza i intuitivna metoda za rad s argumentima funkcije.
  • Operator širenja ne zauzima puno mjesta u kodu - izgleda kao tri točke (...).

▍ Primjer

Recimo da imate zadatak navesti svoje omiljene poslastice bez upotrebe petlje. S operatorom širenja to se radi ovako:

2. For… petlje

Naredba for… of je namijenjena prelasku kroz objekte koji se mogu ponavljati. Omogućuje pristup pojedinačnim elementima takvih objekata (osobito elementima nizova), što, na primjer, omogućuje njihovu promjenu. Može se smatrati zamjenom za običnu for petlju.

▍Snage for... of petlje

  • Ovo je jednostavan način za dodavanje ili ažuriranje stavki zbirke.
  • Petlja for… of vam omogućuje izvođenje različitih izračuna koristeći elemente (zbrajanje, množenje itd.).
  • Zgodno ga je koristiti kada trebate provjeriti bilo koje uvjete.
  • Njegovo korištenje dovodi do čišćeg i čitljivijeg koda.

▍ Primjer

Pretpostavimo da imate strukturu podataka koja opisuje sadržaj okvira s alatima i želite prikazati te alate. Evo kako to učiniti s for ... petlje:

3. Metoda uključuje ().

Metoda uključuje () koristi se za provjeru prisutnosti određenog elementa u kolekciji, posebno, na primjer, određenog niza u nizu koji sadrži nizove. Ova metoda vraća true ili false ovisno o rezultatima provjere. Kada ga koristite, treba imati na umu da je osjetljiv na velika i mala slova. Ako, na primjer, zbirka ima element niza SCHOOL, a provjera njegove prisutnosti pomoću uključuje () izvodi se na školskom nizu, metoda će vratiti false.

▍ Prednosti metode uključuje ().

  • Metoda uključuje () korisna je za stvaranje jednostavnih mehanizama za pronalaženje podataka.
  • Programeru daje intuitivan način da odredi jesu li neki podaci u nizu.
  • Prikladno ga je koristiti u uvjetnim izrazima za modificiranje, filtriranje elemenata i za izvođenje drugih operacija.
  • Njegova uporaba dovodi do poboljšane čitljivosti koda.

▍ Primjer

Pretpostavimo da imate garažu predstavljenu nizom s popisom automobila, a ne znate postoji li određeni automobil u ovoj garaži ili ne. Da biste riješili ovaj problem, morate napisati kod koji vam omogućuje provjeru prisutnosti automobila u garaži. Upotrijebimo metodu uključuje () :

4. Metoda some ().

Metoda some () omogućuje vam da provjerite postoje li neki od elemenata koje tražite u nizu. Na temelju rezultata provjere vraća true ili false. Slična je gornjoj metodi include (), osim što je njezin argument funkcija, a ne, na primjer, običan niz.

▍Neke () prednosti metode

  • Metoda some () omogućuje nam da provjerimo sadrži li niz barem jedan od zanimljivih elemenata.
  • Provjerava uvjet koristeći funkciju koja mu je proslijeđena.
  • Ova metoda je prikladna za korištenje.

▍ Primjer

Pretpostavimo da ste vlasnik kluba i općenito vas ne zanima tko točno dolazi u vaš klub. No, pojedinim posjetiteljima nije dopušten ulazak u klub jer su skloni prekomjernoj konzumaciji alkoholnih pića, barem ako su sami u vašem objektu, a s njima nema tko paziti. U tom slučaju grupa posjetitelja može ući u klub samo ako barem jedan od njih ima najmanje 18 godina. Kako bismo automatizirali ovu vrstu provjere, koristit ćemo metodu some (). U nastavku je prikazana njegova primjena u dvije verzije.

ES5

ES6

5. Svaki () metoda

Svaka () metoda prolazi kroz niz i provjerava svaki njegov element u odnosu na određeni uvjet, vraćajući true ako svi elementi niza ispunjavaju uvjet, i false u suprotnom. Primijetit ćete da je slična metodi some ().

▍ Prednosti svake () metode

  • Metoda every () omogućuje vam da provjerite odgovaraju li svi elementi u nizu uvjet.
  • Uvjeti se mogu postaviti pomoću funkcija.
  • Promiče deklarativni pristup programiranju.

▍ Primjer

Vratimo se na prethodni primjer. Tamo ste u klub pustili posjetitelje mlađe od 18 godina, ali je netko napisao izjavu policiji, nakon čega ste došli u neugodnu situaciju. Nakon što je sve bilo riješeno, zaključili ste da vam sve to ne treba i pooštrili ste pravila posjeta klubu. Sada grupa posjetitelja može ući u klub samo ako svaki član grupe ima najmanje 18 godina. Kao i prošli put, razmotrit ćemo rješenje problema u dvije verzije, ali ovaj put ćemo koristiti metodu svaki ().

ES5

ES6

6. Metoda filtera ().

Metoda filter () omogućuje stvaranje, na temelju određenog niza, novog niza koji sadrži samo one elemente izvornog niza koji zadovoljavaju navedeni uvjet.

▍ Prednosti filtera () Metoda

  • Metoda filter () izbjegava modificiranje izvornog niza.
  • Omogućuje vam da se riješite nepotrebnih elemenata.
  • Poboljšava čitljivost vašeg koda.

▍ Primjer

Pretpostavimo da s popisa cijena trebate odabrati samo one koje su veće ili jednake 30. Za rješavanje ovog problema upotrijebimo metodu filter ().

ES5

ES6

7. Metoda karte ().

Metoda map () slična je metodi filter () po tome što također vraća novi niz. Međutim, koristi se za modificiranje elemenata izvornog niza.

▍Snage metode karte ().

  • Metoda map () izbjegava potrebu za izmjenom elemenata izvornog niza.
  • Prikladno je modificirati elemente niza uz njegovu pomoć.
  • Poboljšava čitljivost vašeg koda.

▍ Primjer

Pretpostavimo da imate popis proizvoda s cijenama. Vaš upravitelj treba novu listu proizvoda s cijenama sniženim za 25%. Za rješavanje ovog problema upotrijebimo metodu map ().

ES5

ES6

8. smanjiti () metoda

Metoda reduciranja () u svom najjednostavnijem obliku omogućuje zbrajanje elemenata numeričkih nizova. Drugim riječima, pretvara niz u jednu vrijednost. To mu omogućuje da se koristi za različite izračune.

▍Snage metode smanjenja ().

  • Metoda reducira () može se koristiti za izračunavanje zbroja ili prosjeka elemenata u nizu.
  • Ova metoda ubrzava i pojednostavljuje izračune.

▍ Primjer

Pretpostavimo da trebate izračunati svoje troškove za tjedan, koji su pohranjeni u nizu. Riješimo ovaj problem pomoću metode reduciranja ().

ES5

ES6

Dodaj oznake

Nizovima se može manipulirati kroz različite metode koje pruža konstruktor polja.

Pop / push and shift / unshift metode

Razmotrite metode pop () i push (). Ove metode vam omogućuju rad s nizovima poput stogova. Stog je struktura podataka u kojoj je pristup elementima organiziran prema LIFO (last in – first out) principu. Princip hrpe može se usporediti sa hrpom tanjura: da biste uzeli drugi s vrha, morate ukloniti gornji. Kako radi prikazano je na slici:

I zato se vratimo na razmatranje push () i pop () metoda. 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 ("Vi ste odabrali moj" + odabrali); Pokušajte "

Metode shift () i unshift () ponašaju se na isti način kao pop () i push (), osim što umeću i uklanjaju elemente na početku niza. Metoda unshift () pomiče postojeće elemente prema većim indeksima kako bi se napravio prostor 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 da zauzmu slobodan prostor na početku niza.

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

Metoda pridruživanja

Metoda Array.join () koristi se za kombiniranje elemenata niza u jedan niz. Metodi se može proslijediti neobavezni argument stringa koji će se koristiti za odvajanje elemenata u nizu. Ako nije naveden graničnik, zadani znak za razgraničenje je zarez kada se poziva metoda.

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 + "
"+ myVar2 +"
"+ myVar3); Pokušajte"

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

Reverzna 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 elementima, već ih mijenja u već postojećem nizu.

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

Concat metoda

Metoda Array.concat () stvara i vraća novi niz koji sadrži elemente izvornog niza na kojem je pozvana metoda concat (), sekvencijalno dopunjen vrijednostima svih argumenata proslijeđenih metodi concat (). Ako je bilo koji od ovih argumenata sam po sebi niz, tada će se dodati svi njegovi elementi. Imena nizova koriste se kao argumenti i specificiraju se redoslijedom kojim želite spojiti njihove elemente.

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

Metoda sortiranja

Metoda Array.sort () sortira elemente niza na mjesto i vraća sortirani niz. Ako se metoda sort () poziva bez argumenta, ona sortira elemente niza po abecedi (privremeno ih pretvara u nizove radi usporedbe). Metoda sort () može uzeti funkciju usporedbe kao argument, koja određuje redoslijed sortiranja stavki.

Var a = ["Kivi", "Naranče", "Kruške"]; a.razvrstaj (); var s = a.pridružiti (","); // Naranče, kruške, kivi document.write (s); // primjer s brojevima var myArr =; myArr.sort (); document.write (myArr); // 1,10,2 Probaj "

Vjerojatno ste očekivali da ćete vidjeti nešto drugačiji rezultat od razvrstavanja brojeva. Ova vrsta sortiranja događa se jer metoda sort () sortira elemente pretvarajući ih u nizove. Stoga imaju red nizova - na kraju krajeva, "10"

Da biste sortirali bilo kojim drugim neabecednim redoslijedom, možete proslijediti funkciju usporedbe kao argument metodi sort (). Imajte na umu, međutim, da morate sami napisati funkciju usporedbe. Ova funkcija mora imati dva parametra jer postavlja koji od dva argumenta treba biti prvi na sortiranom popisu. Da bismo lakše razumjeli i napisali takvu funkciju, postoji nekoliko pravila po kojima će se odrediti redoslijed elemenata:

  • Ako prvi argument mora prethoditi drugom, funkcija za usporedbu vraća negativan broj (ako je a
  • Ako prvi argument mora slijediti drugi, tada funkcija za usporedbu vraća pozitivan broj (ako je a> b)
  • Ako su dvije vrijednosti jednake (tj. redoslijed nije važan), funkcija usporedbe vraća 0 (ako je a == b)

Za usporedbu, funkcija koristi elemente niza kao svoje argumente:

Funkcija foo (a, b) (// definiraj testnu funkciju ako (a b) vrati 1; vrati 0; // ako je a == b) var a =; a. sortiraj (foo); // samo se naziv funkcije prosljeđuje kao argument document.write (a.join (",")); // napiši istu stvar kraće var a =; a.sort (funkcija (a, b) (// koristiti anonimnu funkciju return a - b; // funkcija vraća 0)); dokument.pisati (a); // 1,2,5,10 Probaj "

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

Napomena: Ako u nizu postoje nedefinirani elementi, oni se prelamaju do kraja niza.

Metoda rezanja

Metoda Array.slice () koristi se za kopiranje navedenog područja iz niza i vraćanje novog niza koji sadrži kopirane elemente. Ovo ne mijenja izvorni niz.

Sintaksa metode:

Ime polja.slice (početak, kraj);

Ime_niza treba zamijeniti imenom niza iz kojeg želite dohvatiti određeni skup elemenata za novi niz. Metoda uzima dva argumenta koja definiraju početak i kraj vraćenog dijela niza. Metoda kopira dio niza od početka do kraja, ne uključujući kraj. Ako je naveden 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.slice (0,3); // Vraća arr.slice (3); // Vraća arr.slice (1, -1); // Vraća arr.slice (-3, -2); // Vraća

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 rade 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 uklonjenih elemenata, ako nijedan od elemenata nije uklonjen, vratit će prazan niz.

Sintaksa metode:

Ime niza.splice (indeks, količina, elem1, ..., elemN);

Prvi argument specificira indeks u nizu na kojem će početi umetanje ili uklanjanje elemenata. Drugi argument postavlja broj elemenata za uklanjanje iz niza počevši od indeksa navedenog u prvom argumentu, ako je drugi argument 0, tada elementi neće biti uklonjeni. Ako je drugi argument izostavljen, uklanjaju se svi elementi niza od navedenog indeksa do kraja niza. Kada koristite negativan broj pozicije, elementi će se brojati od kraja niza.

Var voće = ["naranče", "jabuke", "kruške", "grožđe"]; var izbrisan = plodovi.splice (2,2); // vraća ["kruške", "grožđe"] document.write (izbrisan); 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 polja za uklanjanje. Ova dva argumenta mogu biti praćena neograničenim brojem dodatnih argumenata koji specificiraju elemente koji će se umetnuti u niz, počevši od pozicije zadane prvim argumentom.

Var voće = ["naranče", "jabuke"]; voće.splice (2,0, "lubenice"); // vraća dokument.write (voće); // sada ["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 "

Treba napomenuti da za razliku od concat (), metoda splice () ne dijeli nizove proslijeđene kao argumente u zasebne elemente. To jest, ako se niz prosljeđuje metodi za umetanje, on umeće sam niz, a ne elemente tog niza.

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ći Probaj "

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

indexOf i lastIndexOf

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

Sintaksa za metode indexOf () i lastIndexOf () je:

Array_name.indexOf (potraga_item, indeks) array_name.lastIndexOf (potraga_item, indeks)

Prvi argument metode specificira vrijednost elementa čiji indeks treba pronaći, drugi argument (izborno) specificira indeks od kojeg se započinje pretraživanje. Ako postoji nekoliko 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.indeksOf (3); // će vratiti 2 a.indexOf (3,4); // će vratiti 6 a.indexOf (35); // će vratiti -1: nema elementa s ovom vrijednošću a.indexOf (2); // jedan

LastIndexOf () metoda 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); // će vratiti 7 a.lastIndexOf (35); // će vratiti -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. To su metode forEach (), map (), filter (), every (), some, smanjiti () i reduceRight ().

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

za svakoga

Sintaksa metode:

ArrayName.forEach (povratni poziv, thisArg)

Prvi argument je funkcija povratnog poziva koju će forEach () metoda pozvati za svaki element niza. Morate sami napisati implementaciju pozvane funkcije rukovatelja. Pozvana funkcija mora imati tri parametra: prvi parametar uzima vrijednost elementa niza kao argument, 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 vrijednost this.

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 u ovom // primjeru s tri parametra var a =; a.forEach (funkcija (el, idx, a) (dokument. napisati ( "a [" + idx + "] =" + el + "u [" + a + "]
";)); Pokušajte"

filtar

Sintaksa metode:

ArrayName.filter (povratni poziv, thisObject)

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

Funkcija jeBig (element, indeks, niz) (// vraća brojeve koji su veći ili jednaki 10 vraćaju (element> = 10); // ako je vrijednost elementa veća ili jednaka 10, izraz će vratiti true) var filtriran = .filter (jeBig) ; // filtrirano

karta

Metoda map () stvara i vraća novi niz, koji će se sastojati od rezultata poziva funkcije povratnog poziva (item, idx, ar) za svaki element u nizu.

Var a =; var b = a.map (funkcija (stavka, idx, arr) (povratna stavka * stavka;)); // b =

svaki i neki

Svaka () metoda vraća true ako za sve elemente niza navedena funkcija koja se koristi za njihovo testiranje vraća true.

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

Var a =; a.svaki (funkcija (x) (povrat x 10;)) // true: jedan broj> 10

smanjiti i smanjitiDesno

Sintaksa metode:

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

Metoda reducira () primjenjuje navedenu funkciju (povratni poziv) na dvije vrijednosti u nizu odjednom, ponavljajući elemente s lijeva na desno, zadržavajući srednji rezultat.

Argumenti funkcije povratnog poziva: (prethodnaValue, currentItem, indeks, niz)

  • previousValue - povratni rezultat funkcije povratnog poziva (aka međurezultat)
  • currentItem - trenutna stavka u nizu (stavke se redom ponavljaju s lijeva na desno)
  • index - indeks trenutnog elementa
  • niz - niz koji se obrađuje

initialValue Objekt koji se koristi kao prvi argument za prvi poziv funkciji povratnog poziva. Jednostavno rečeno, vrijednost previousValue jednaka je initialValue kada se prvi put pozove. Ako ne postoji početna vrijednost, tada je jednaka prvom elementu niza, a iteracija počinje od drugog:

Var a =; funkcija foo (prevNum, curNum) (zbroj = prevNum + curNum; upozorenje (zbroj); povratni zbroj;) var rezultat = a.reduce (foo, 0); dokument.pisati (rezultat); Pokušajte "

Pogledajmo kako ovaj primjer funkcionira. Prvi argumenti foou su:

  • prevNum = 0 (budući da je početna vrijednost 0)
  • curNum = 1 (trenutni element je 1. element niza)

Broj 0 dodaje se na 1. Ovaj rezultat (zbroj: 1) bit će proslijeđen kao prevNum sljedeći put kada se funkcija pokrene. I tako sve dok ne dođe do posljednjeg elementa. Vraćeni rezultat - zbroj iz posljednje vožnje, bit će 15 (1 + 2 + 3 + 4 + 5).

Metoda reduceRight radi slično metodi reduciranja, ali prolazi kroz niz s desna na lijevo:

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

U JavaScriptu, kao i u drugim programskim jezicima, koriste se različite metode za rad s nizovima.

Metode olakšavaju izgradnju logike i implementaciju u skriptu.

Slijede osnovne metode za rad s nizovima u JS-u.

gurnuti

Metoda push () dodaje vrijednost na kraj niza.

Neka arr =; arr.push (312); console.log (arr); // →

pop

Metoda pop () uklanja posljednji element iz niza ili vraća njegovu vrijednost.

Neka arr =; arr.pop (); console.log (arr); // →

Koristeći mogućnost dobivanja vrijednosti posljednjeg elementa niza, kao primjer, možemo dobiti format slike:

Neka img = "https://example.com/img/name.png"; neka format = img.split ("."). pop (); console.log (format); // → png console.log (img.split (".")); // → ["https: // primjer", "com / img / name", "png"]

poništiti smjenu

Metoda unshift () dodaje element na početak niza.

Neka arr =; arr.isključenje (312); console.log (arr); // →

pomak

Metoda shift () uklanja prvi element iz niza.

Neka arr =; arr.shift (); console.log (arr); // →;

Morate razumjeti da kada koristite metode shift i unshift, svaki element niza mijenja svoj indeks. To može usporiti izvršavanje programa ako je niz dugačak.

podjela

Metoda split () koristi se za transformaciju niza u niz. Split dijeli niz prema navedenom parametru.

Neka str = "Anja, Maša, Saša, Daša"; // ovo je niz let arr = str.split (","); console.log (arr); // → ["Anya", "Masha", "Sasha", "Dasha"] je niz

pridružiti

Metoda join () spaja elemente niza u niz, odvojene graničnikom navedenim u parametru.

Neka arr = ["Notpad ++", "Sublime", "VSCode"]; // ovo je niz neka str = arr.join (","); console.log ("Uređivači za kod:" + str); // → "Uređivači koda: Notpad ++, Sublime, VSCode"

kriška

Metoda slice () stvara novi niz u koji kopira elemente iz izvora počevši od elementa s indeksom prvog parametra koji je proslijeđen metodi, do elementa s indeksom drugog parametra.

Na primjer: slice (3, 7) će vratiti elemente s indeksima 3, 4, 5, 6. Element s indeksom 7 neće biti uključen u niz.

Ako je parametar s negativnom vrijednošću proslijeđen slice (), tada vraća novi niz s brojem elemenata navedenim u parametru, ali već preuzetim s kraja izvornog niza.

Metoda slice ne mijenja izvorni niz.

Evo nekoliko primjera kako radi metoda slice ():

Neka arr = ["A", "B", "C", "D", "E", "F", "G"]; // Vraća niz koji sadrži elemente s indeksima od 2 do 5 console.log (arr.slice (2, 5)); // → ["C", "D", "E"] // Vraća novi niz koji sadrži elemente s indeksima od 3 do arr.length console.log (arr.slice (3)); // → ["D", "E", "F", "G"] // Vraća kopiju izvornog niza console.log (arr.slice ()); // → ["A", "B", "C", "D", "E", "F", "G"] // Vraća novi niz koji se sastoji od posljednja tri elementa izvornog console.log (arr.slice (-3)); // → ["E", "F", "G"]

spajanje

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

Sintaksa:

Array.splice (start, deleteCount [, item1 [, item2 [, ...]]])

Parametri:

  • početak- Indeks na kojem se počinje mijenjati niz. Ako je veći od duljine niza, stvarni indeks bit će postavljen na duljinu niza. Ako je negativan, specificira indeks elementa s kraja.
  • deleteCount- Cijeli broj koji označava broj starih elemenata uklonjenih iz niza. Ako je deleteCount 0, nijedna stavka se ne briše. U tom slučaju morate navesti barem jednu novu stavku. Ako je deleteCount veći od broja preostalih elemenata u nizu, počevši od početka indeksa, tada će svi elementi do kraja niza biti izbrisani.
  • stavka N- Neobavezni parametri. Stavke za dodavanje u niz. Ako ne navedete nijedan element, splice () će jednostavno ukloniti elemente iz niza.

Povratna vrijednost

Opis

Ako se navedeni broj umetnutih elemenata razlikuje od broja uklonjenih elemenata, niz će promijeniti duljinu nakon poziva.

Neka arr = [Barça, Rudar, Manchester United, Milan, Real Madrid, Ajax, Juventus]; neka nax = arr.splice (2, 3); arr.splice (2, 3); console.log (nax); // → [Manchester United, Milan, Real Madrid] console.log (arr); // → [Barca, Rudar] arr.splice (1, 0, Zenit, CSKA, Spartak); console.log (arr); // → [Barca, Zenit, CSKA, Spartak, Šahtjor]

obrnuto

Reverse () metoda mijenja redoslijed elemenata niza. Kao rezultat toga, prvi element niza postaje posljednji, a posljednji element je prvi.

Neka arr =; console.log (arr.reverce ()); // → console.log (["Alice", "BG", "GO", "DDT"]. Reverce ()); // → ["DDT", "GO", "BG", "Alice"]

karta

Metoda map () ponavlja elemente niza izvodeći određene radnje s njima i vraća kopiju niza s promijenjenim elementima.

U primjeru ispod, svakom elementu niza dodajte vrijednost indeksa ovog elementa (7 + 0, 2 + 1, 15 + 2, 4 + 3, 31 + 4):

Neka arr =; neka testMap = arr.map ((element, indeks) => element + indeks); console.log (testMap); //

ili, na primjer, svaku vrijednost niza množimo s 12

Neka arr =; neka testMap = arr.map (a => a * 12); console.log (testMap); // →

filtar

Metoda filter () koristi se za filtriranje nizova. Prolazi kroz niz, vraćajući samo one elemente koji ispunjavaju navedeni uvjet.

Na primjer, filtrirajte vrijednosti niza iz brojeva, ostavljajući samo one koji su veći od 21

Neka arr =; neka testFilter = arr.filter (element => element> 21); console.log (testFilter); // →

Imajte na umu da 21 nije uključen u rezultat niza, budući da je uvjet bio vratiti nešto što je veće od 21. Da bi 21 ušao u niz, postavili smo uvjet kao veći ili jednak: element> = 21

smanjiti

Metoda reduciranja () sekvencijalno prolazi kroz elemente niza, dok akumulira međurezultat prema onom navedenom u uvjetu radnje funkcije. Na kraju, vraća samo jednu vrijednost.

Ova metoda se često koristi za pronalaženje zbroja svih brojeva u nizu. Primjer:

Neka arr =; neka summa = arr.reduce ((acc, element) => acc + element); console.log (summa); // → 370

vrsta

Metoda sort () koristi se za sortiranje elemenata niza prema navedenim parametrima.

Primjer - uzmite niz brojeva i sortirajte ih uzlaznim redoslijedom:

Neka arr =; neka testSortArr = arr.sort ((a, b) => a - b); console.log (testSortArr); // →

uključuje

Metoda include () određuje sadrži li niz određeni element, vraćajući true ili false ovisno o tome.

Primjer korištenja uključuje ().

Evo jednog logičnog izraza:

Neka životinja = "pas"; if (životinja == "mačka" || životinja == "pas" || životinja == "lav" || životinja == "konj") (// ........)

korištenjem metode include može se napisati ovako:

Neka životinja = "pas"; const životinje = ["mačka", "pas", "lav", "konj"]; if (životinje.uključuje (životinju)) (// ...........)

Naučite indeksirati nizove u js-u, uklanjati i dodavati njihove elemente.

Niz u JavaScriptu je globalni objekt za pohranjivanje popisa vrijednosti.

Sličan je drugim varijablama po tome što može pohraniti bilo koju vrstu podataka. No, niz ima jednu važnu razliku od varijable: može pohraniti više od jednog elementa u isto vrijeme.

Niz je uređena zbirka vrijednosti. Svaka vrijednost naziva se element i ima svoj broj, koji se naziva indeks.

Element unutar niza može biti bilo koje vrste. Štoviše, elementi jednog niza mogu biti različitih vrsta: brojevi, nizovi, logički elementi, pa čak i objekti ili drugi nizovi.

Redoslijed elemenata niza temelji se na 0. Ispada da će niz uvijek imati indeksni pomak za jedan: prvi element će imati indeks 0, drugi 1 itd.

Evo primjera niza s elementima različitih tipova:

Napravite (deklarirajte) niz

Nizovi su vrlo praktični jer mogu pohraniti onoliko podataka koliko je potrebno. Maksimalna moguća veličina js -niza je 2 32 elementa.

Moramo reći JavaScriptu da želimo stvoriti niz. Za to postoje dvije opcije: vrijednost u uglastim zagradama ili nova ključna riječ.

Kratka oznaka: korištenjem uglastih zagrada

Popis vrijednosti odvojenih zarezima u uglastim zagradama.

var myArray = ["Jack", "Sawyer", "John", "Desmond"];

Sadržaj niza određen je onim što se nalazi između uglastih zagrada. U ovom slučaju, svaka vrijednost je odvojena zarezom.

Vrijednosti se postavljaju na isti način kao i jednostavne varijable, odnosno nizovi se moraju deklarirati u navodnicima itd.

Da biste deklarirali prazan niz, ostavite zagrade prazne:

var myArray =;

Duga oznaka: korištenjem konstruktora Array ().

var lostArray = novi niz ("Jack", "Sawyer", "John", "Desmond"); var twinPeaksArray = novi niz ("Laura", 2, ["Bob", "Leland", "Dale"]);

Nova ključna riječ govori JavaScriptu da stvori novi niz čije se vrijednosti prosljeđuju kao parametri.

Ako unaprijed znate koliko će elemenata biti u vašem nizu, ovu vrijednost možete odmah proslijediti u konstruktor.

var myArray = novi niz (80);

Gornji izraz će stvoriti prazan niz od 80 mjesta s nedefiniranim vrijednostima.

Deklariranje praznog niza:

var myArray = novi niz ();

Pristup elementima niza

Koristeći indeks svakog elementa, možete raditi s bilo kojim podacima u nizu, pozivajući se na njih pomoću operatora:

var myArray = ["Jack", "Sawyer", "John", "Desmond"]; console.log (myArray); // Ispisuje “Jack” console.log (myArray); // Ispisuje "Desmond"

Niz može imati nekoliko razina, odnosno svaki element može sam po sebi biti niz. Kao rezultat, dobivate dvodimenzionalni js -array. Kako se možemo pozvati na te nizove, koji se nalaze unutar drugih - " višedimenzionalni nizovi»?

Kao primjer, razmotrimo niz koji predstavlja obitelj. Djeca iz ove obitelji evidentiraju se u zasebnom nizu unutar glavnog:

var familyArray = ["Marge", "Homer", ["Bart", "Lisa", "Maggie"]];

Možete to zamisliti ovako:

Da se odnosimo na značenje "Lisa":

var lisa = FamilyArray; console.log (lisa); // prikazuje "Lisa"

Ovako možete nastaviti gotovo beskonačno, što vam omogućuje pohranjivanje ugniježđenih skupova podataka u nizove i pristup im pomoću indeksa.

Dodavanje stavki u niz

Shvatili smo kako pristupiti elementima niza koristeći njihove odgovarajuće indekse. Slično, možete dodati (ili promijeniti) elemente deklariranjem, na primjer:

var myArray = ["Keith", "Sunce"]; myArray = "Julija"; console.log (myArray); // Ispis "Kate, Sun, Juliet"

Što se događa ako deklariram element s indeksom ispred kojeg nema drugih elemenata? Sam niz će stvoriti sve elemente koji nedostaju i dodijeliti im nedefiniranu vrijednost:

var myArray = ["Keith", "Sunce"]; myArray = "Julija"; console.log (myArray.length); // Ispisuje "6" console.log (myArray); // Ispisuje ["Keith", "Sun", undefined, undefined, undefined, "Juliet"]

Možete saznati koliko dugo js -array koristi svojstvo dužine. U gornjem primjeru, postoji šest elemenata u nizu, a trima od njih nije dodijeljena vrijednost - oni su označeni kao nedefinirani.

Push () metoda

Pomoću metode push () možete dodati jedan ili više elemenata u js polje. Push () prihvaća neograničen broj parametara, svi će biti dodani na kraj niza.

var myArray = ["Keith", "Sut"]; myArray.push ("Julija"); // Dodaje element "Juliet" na kraj niza myArray.push ("Libby", "Shannon"); // Dodaje elemente "Libby" i "Shannon" na kraj polja console.log (myaArray ); // Prints ["Keith", "Sun", "Juliet", "Libby", "Shannon"]

Metoda unshift ().

Metoda unshift () radi isto kao i push (), osim što dodaje elemente na početak niza.

var myArray = ["Keith", "Sunce"]; myArray.unshift ("Julija"); // Dodaje element "Juliet" na početak niza myArray.unshift ("Libby", "Shannon"); // Dodaje Libby i Shannon na početak niza console.log (myArray); // Ispisuje ["Libby", "Shannon", "Juliet", "Keith", "Sun"]

Uklanjanje elemenata niza

Pop () i shift () metode

Metode pop () i shift () uklanjaju posljednji i prvi element niza, redom:

var myArray = ["Jack", "Sawyer", "John", "Desmond", "Kate"]; myArray.pop (); // Uklanja element "Keith" myArray.shift (); // Uklanja Jack element console.log (myArray); // Ispisuje ["Sawyer", "John", "Desmond"]

Metoda spajanja ().

Pomoću metode splice () možete ukloniti ili dodati elemente nizu, a pritom navesti točan indeks elemenata.

U sljedećem primjeru, metoda spajanja () dodaje dva elementa, počevši od indeksa 2 ( odnosno od trećeg elementa):

var fruitArray = ["jabuka", "breskva", "naranča", "limun", "limeta", "trešnja"]; fruitArray.splice (2, 0, "dinja", "banana"); console.log (fruitArray); // Ispisuje [jabuka, breskva, dinja, banana, naranča, limun, limeta, trešnja]

Prvi parametar metode splice () je indeks. Označava na kojoj poziciji dodati/ukloniti elemente. U našem primjeru odabrali smo indeks 2 ( sa značenjem "naranča").

Drugi parametar je broj stavki koje treba ukloniti. Naveli smo vrijednost 0, tako da ništa neće biti izbrisano.

Sljedeći parametri su izborni. Oni dodaju nove vrijednosti u niz. U našem slučaju trebamo dodati "dinju" i "bananu", počevši od indeksa 2.

Vrhunski povezani članci