RačunalaProgramiranje

JavaScript-polje i njegovo stvaranje. Sve o JavaScript polja

U ovom članku ćemo pogledati JavaScript-polje, njegove sastavne dijelove. JavaScript je savršen scenarij orijentiran jezik dizajniran za programiranje. U stvari, to implementira ECMAScript jezik (standardni ECMA-262).

JavaScript? Ona se koristi kao ugrađeni jezik kako bi se utvrdilo put programa za predmet zahtjeva. Ona se može naći u pregledniku: ona se tamo koristi kao skriptni jezik koji daje web stranice interaktivne.

Glavni arhitektonske značajke ovog proizvoda su dinamični i slaba tipkati, avtoupravlenie memorije idealan programiranje funkcije koje su predmet prvog pražnjenja.

Zapravo, u JavaScriptu utjecajem različitih razloga, jer razvoj će stvoriti jezik sličan Javi, ali jednostavan za korištenje od strane programera. Usput JavaScript jezik ne posjeduje bilo koju tvrtku ili organizaciju koja ga čini različitim od niza programskih stilova koriste web programere.

Treba napomenuti da je JavaScript - registrirani zaštitni znak tvrtke Oracle Corporation Group.

Što je niz?

Nazvan niz vrsta podataka, koja pohranjuje s brojevima vrijednosti. Svaka takva vrijednost se naziva polje komponenta, te se broj iz koje veže na komponente, pod nazivom indeks. JavaScript niz tipizirana. To znači da su čvrsti dijelovi mogu imati bilo koje vrste, s različitim dijelovima pripadaju istom nizu, imaju potpuno različite vrste.

Osim toga, JavaScript polje je dinamičan, a on je rekao da je fiksna veličina ne mora biti proglašen. Nakon dodavanja novih dijelova u bilo kojem trenutku.

čvrste proizvodnja

Korištenje JavaScript jezik za stvaranje niz vrlo teško. Postoje dvije metode za to. Prvi uključuje proizvodnju niza pomoću doslovno - od uglate zagrade, u kojem se nalazi popis stavki, podijeljen zarezima.

  • var prazna = []; // prazan niz;
  • var numers = [4, 1, 2, 5]; // niz s pet digitalnih komponenti;
  • var diff = [1,5, lažno «tekst"]; // niz s tri elemenata različitih tipova.

U pravilu, to ne mora biti jednostavne vrijednosti (redovi i brojevi). To također može biti bilo koji drugi izrazi, na primjer, objekt literali, ostale funkcije i nizovi.

Drugi način stvoriti niz dizajner je nazvati Array (). Da ga pozvati na jedan od tri načina:

  • Poziv dizajner bez argumenata: var b - novi Array (). On pruža za stvaranje praznog polja ekvivalent prazna doslovni [].
  • Dizajner izričito određivanjem vrijednosti n komponenata array: var b = new Array (1, 3, 5, 8, „linija», istina). U tom slučaju, dizajner predstavio popis argumenata, koji se pretvara u novi niz komponenti. Argumenti su pisane na polju je mjesto gdje je naznačeno.
  • Definiranje prostor za daljnje pridavanje vrijednosti. To se izvodi određivanjem polje prepoznavanja broj u zagradama: var b = new Array (5). Ova metoda otkrivanja uključuje dodjelu Array potrebne količine sastojaka (od kojih je svaka navedena kao nedefinirano) s mogućnošću dodjeljivanja vrijednosti u prezentaciji. Ovaj oblik se obično koristi za pre-dodijeliti JavaScript-niz čija duljina je poznat unaprijed.

Snimanje, čitanje i dodavanje pojedinosti o nizu

Dobiti na sastavnim dijelovima polja može biti preko operatora []. Usput, sve komponente u JavaScriptu, počevši od nule, su odbrojani. Za dobivanje potrebne elemente, ukazuju na njen broj u uglatim zagradama. Kao opće pravilo, stavke mogu se mijenjati. Javascript dodati na polje, dovoljno je odrediti novu vrijednost.

Treba napomenuti da je u JavaScriptu polja mogu pohraniti neograničen broj elemenata bilo koje vrste.

Duljina niza

Dakle, znamo što JavaScript. Duljina niza u cjelini je zanimljiv fenomen. Neka nam to uzeti u obzir u više detalja. Svi rasponi izgrađen korištenjem Array dizajner () i otkriti kroz doslovni niz imati određenu duljinu imovine, koja povlači ukupan broj elemenata štede. Budući da je niz može biti nesigurna detalja (nedefiniran Imenovani), točniji izraz zvuči tako: dužina Kvaliteta je uvijek veći za jedan od najvećih brojeva (indeks) iz polja komponente. Duljina Kvaliteta se podešava automatski, boraveći točne na pojavu niza novih detalja.

Za prikaz konačnog komponentu polja, možete koristiti svojstvo dužine.

Zadnji dio je indeks jedan manje od veličine polja. Nakon odbrojavanja počinju uvijek ispočetka. Oh, ovo JavaScript! Duljina polja ovisi o točnom broju elemenata. Stoga, ako ne znam koliko bi trebalo biti, ali morate obratiti konačni element polja, potrebno je primijeniti rekord: v.length - 1.

Ponoviti na niz dijelova

Vrlo često, vlasništvo duljina se koristi za prolazak preko niza dijelova u ciklusu:

  • var voće = [ «jagoda”, "breskve", "jabuka", "banane"];
  • za (var I = 0; i
  • document.write (voće [i] «...»).

U ovom primjeru se čini da su dijelovi raspoređeni kontinuirano i početi s prvom dijelu, koja ima indeks nula. Ako to nije slučaj, prije pozivanja svaki element polja treba provjeriti da li je to definirano.

Ciklus je također ponekad koristi za početne komponente.

Povećanje i sakaćenja niz

Pitam se kako pomoću jezika JavaScript niza u niz dodati? U procesu rada s polja, duljina duljina automatski poboljšava kvalitetu, zbog čega moramo brinuti o tome sami. Potrebno je podsjetiti jedan detalj - dužina imovina nije dostupna za čitanje, ali za zapisnik. Ako je vrijednost atributa duljinom kvaliteta koja daje veličinu struje, polje se smanjuje na unaprijed određenu vrijednost. Bilo komponente koje nisu uključene u novoj raspona indeksa, nasloniti, a njihove vrijednosti su izgubili, čak i ako se kasnije vratiti natrag duljinu - vrijednosti ne mogu vratiti.

Vrlo jednostavno očistiti polje kao: foo.length = 0.

Ako je kvaliteta duljine izvođenja većoj od njegove trenutne vrijednosti, na kraju niza će biti novi, nepoznati komponente, koje će ga povećati na željenu veličinu.

Brisanje niz detalja

Brisanje operater označava komponentu polja na neodređen, ali i dalje postoje u ovom slučaju. Ako želite ukloniti JavaScript element polja, tako da se preostali dio pomaknut na upražnjeno mjesto, morate koristiti jedan od načina da se predvidjeti polje. Postupak Array.shift () uklanja prvu komponentu, pop () - koji završava komponentu i metode povezivanja () - jednu komponentu ili bilo gdje rasponu niz.

višedimenzionalnih polja

Čini se da razumiju malo, što JavaScript. Dvodimenzionalni nizovi - koje treba uzeti u obzir i dalje. Sjećate li se da je JavaScript polja mogu sadržavati komponente drugih stvari? Ova značajka koristi za proizvodnju multi-dimenzionalni polja. Za posjet komponente u niz polja dovoljno je primijeniti zagrade dvaput.

asocijativno polje

Sada ćemo naučiti kako zaštitni znak koristi JavaScript asocijativno polje. Za to moramo gledati u teoriji: asocijativno polje ponekad se naziva hash tablice. Zahvaljujući njima, umjesto indeksa reda primjenjuju. Uporaba takvih struktura podsjeća na korištenje imena svojstava jednostavnog objekta, ali u ovoj izvedbi, izvođenje radova u niz formatu. Budući da ne postoje načini manipulacije JavaScript nizovi asocijativni, oni se koriste znatno rjeđe nego inače. Treba napomenuti da su oni još uvijek mogu biti korisne za pohranu podataka i pojednostavljuju pohranu dijelova, koji će se pristupiti.

izlazni niz

A sada ćemo proučiti u JavaScript sustavu? Izlaz polje u dijalog (na ekranu), kao i izlazne vrijednosti komponenata polje.

Ako program koji želite prikaz vrijednosti svih komponenti, onda je praktično primijeniti upute za. Zanimljivo je da su promjenjive brojač pravila za primjenu u isto vrijeme kao i komponente indeksa polja.

čišćenje

Kako bi filtrirao niz JavaScript, morate resetirati njegovu duljinu:

  • var myArray = [1, 2, 5, 23];
  • myArray.length = 0.

U nastavku se prikazuje provedbu okolici jasan (), u okviru, JavaScript-Prototip:

  • jasna: funkcija () {;
  • this.length = 0;
  • ovo vratiti;
  • }.

Dodavanje i uklanjanje komponenti

Pa, mi i dalje i dalje istraživati ovaj uzbudljivi JavaScript jezik. element niza moguće i ukloniti i dodati na isti način kao i konvencionalne svojstva drugih objekata. No, postoje neke razlike: dodavanje numeričku svojstva dužina može biti različite kvalitete, ali u promjeni duljine svojstva može eliminirati brojčanu kvalitete. U načelu, kao i instaliranje algoritma u polja je kako slijedi:

  • Prilikom dodavanja digitalne nepoznatih svojstva i, ukoliko je duljina jednaka ili manja od: i, dužina utvrđeno je da i + 1.
  • Kada promijenite kvalitetu duljine izvesti sljedeće korake: ako je dodijeljena vrijednost manja od nule, a zatim baca RangeError. Uklanja sve numeričke kvalitete indeksa koji su jednaki novim dužine, a veći od.

Zapravo ukloniti JavaScript element niza je jednostavan. Uostalom, čak i podešavanje dužine, koje je potrebno ukloniti „Extra” komponente iz njega. Iz ove opcije čišćenje polja. Ako je varijabla je dodijeljen novi prazno polje, iz bilo kojeg razloga, nisu bili zadovoljni, a potrebno je resetirati struje, njegova kvaliteta je dovoljna dužina dodijeliti vrijednost nula.

unshift metode, pomak, pop i guranje

Unatoč činjenici da su komponente polja promijenio ručno, mnogi preporučuju koristiti ovaj izgrađen-in metode. Upravo je ta nijansa jamči ispravnu vrijednost kvalitete i nedostatak dužine u nizu prolaza. Usput, kvaliteta ispravne duljine će odgovarati broju komponenti.

Proces kreće gurnuti kraj polja prenose predmete. Pop natrag proces daje konačnu komponentu i uklanja.

Općenito u Internet Exploreru pod osmog verziji unshift može vratiti nedefiniran, u drugim preglednicima - novi vrijednost duljine. Tako da je povratak vrijednost od unshift bolje ne nadati.

Dodavanje i uklanjanje dijelova u sredini niza

Ako želite izbrisati niz JavaScript, morate uzeti? Poznato je da metoda ima potpis spojna Array.prototype.splice.

On povlači iz komponenti niz deleteCount, počevši od indeksa početka. Ako prođe više od dva argumenta, sve naknadne argumenti u nizu nalaze se u mjestu od likvidiran. Ako početak je minus, indeks u kojem se nastaviti povlačenje će biti jednaka duljini + start. Povrat na niz udaljenih elemenata odvija.

U stvari, metodom spojna, moguće je ukloniti komponente iz sredine niza ili dodati bilo koji broj bilo gdje u polju.

U najjednostavnijem primjeru, ako je potrebno ukloniti dio s indeksom ja, polje treba tražiti način spojna s parametrima I i 1.

U načelu, druga opcija na način spojnu nije obavezno, ali je ponašanje funkcije pomoću jednog argumenta za svaki preglednik je drugačiji.

Na primjer, u Firefox, Opera u posljednjih varijacijama, svi detalji pred kraj polja će biti uklonjeni u Safari i Chrome.

nijedan dio se odstrani u IE. Prva varijanta je nemoguće predvidjeti ponašanje Operu - bit će uklonjena jedna stavka s indeksa start - 1. Stoga je uvijek potrebno u ovu metodu za prijenos najmanje dvije komponente.

ključevi

Naravno, učenje JavaScript, asocijativno polje, kao što je ranije spomenuto, trebali biste također ne mogu previdjeti. To je sažetak pogled na informacije (sučelje za pohranu podataka), koji omogućuje da se spasi par obliku „(ključ, vrijednost)” i operacija dodavanja par podrške, kao i brisanje i potrazi za ključne par:

- pronaći (key).

- umetanje (vrijednosti, ključ).

- Uklanjanje (key).

Smatra se da je u asocijativnom nizu ne može da spasi dva para sa sličnim ključeva. U par K + stihova je vrijednost povezana s ključem k. Semantika i ovdje s gore navedenim operacijama u različitim implementacijama takvih polja mogu biti različiti.

Dakle, PRONAĐITE rad (ključ) vraća vrijednost koja je povezana s određenom ključu, ili određeni objekt UNDEF, što znači da je vrijednost povezana s određenom ključu, offline. Druge dvije akcije ne vrati (osim za podatke o tome da li je operacija bila uspješna).

Općenito, u smislu sučelja, asocijativni niz koji se smatra kao jednostavan niz, pri čemu se kao pokazatelji mogu se primijeniti, ne samo cijeli brojevi, ali druge vrste i vrijednosti - na primjer, linija.

Usput, podrška za takve polja tretiraju postoji mnogo višim programskim jezicima kao što su PHP, Perl, Ruby, Python, Tcl, JavaScript i drugi. Za jezike koji nemaju ugrađene alate za rad s asocijativnim nizovima, stvorio ogroman broj ostvarenja u obliku knjižnicama.

Primjer asocijativni niz može poslužiti kao telefonski imenik. U ovoj izvedbi, vrijednost je „F. IO + E”, a ključ - telefonski broj. Jedan telefonski broj jedan majstor, ali jedna osoba može posjedovati više brojeva.

Associated proširenje

Valja napomenuti da su najpoznatije ekstenzije uključuju sljedeće:

  • SVAKI - «šetnja» na sve sprema parova.
  • Jasna - za brisanje svih unosa.
  • MIN - pronaći par s najnižom vrijednosti ključa.
  • MAX - pronaći par s najvećim ključne vrijednosti.

U posljednja dva slučaja potrebno je na tipkama naznačeno usporedbu učinak.

Realizacija asocijativnih polja

Postoje mnoge različite implementacije asocijativnih polja. Najčešći implementacija može se temeljiti na jednostavnoj niz čije komponente su para (vrijednost ključ). Da bi ubrzali funkcije za pretraživanje, možete se dogovoriti komponente polja po ključnim nalaz i provesti pomoću binarnog pretraživanja. No, to će povećati količinu vremena potrebnu za dodavanje novi par, jer će trebati „push” Niz komponente koje su se pojavile u praznu ćeliju spakirati novi rekord.

Najpoznatija primjena, na temelju različitih stabala pretraživanja. Na primjer, u tipičnom čitaonici STL C ++ jezika prikolice karte se provodi na temelju crne i mahagonija. U Ruby, stilovi, Tcl, Python koristi jednu vrstu hash tablica. Postoje i druge implementacije.

U principu, svaka primjena ima svoje prednosti i nedostatke. Važno je da su sve tri operacije ispunjeni u prosjeku, au najgorem razdoblju od nijansom o (log n), gdje je n - broj tekućeg da spasi par. Za usklađene stabala pretraživanja (uključujući crnim i crvenim stabala), ovaj uvjet je zadovoljen.

Poznato je da se u implementacijama temeljenim na hash tablicama srednje vrijeme definira kao O (1), što je bolje nego u akcijama koje se temelje na stabla pretraživanja. Naravno, to ne jamči brzu izvođenje pojedinačnih operacija: INSERT vrijeme akcije u najgorem slučaju označava se kao O (n). INSERT proces se provodi dulje vrijeme, kada faktor punjenja dosegne najvišu točku i postoji potreba za rekonstrukcijom indeksa tablice hash.

Usput, ove izjave s hashom su loše jer ne mogu izvršiti brze dodatne akcije MAX, MIN i algoritam zaobilazeći sve spremljene parove redoslijedom smanjenja ili povećanja tipki.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hr.atomiyme.com. Theme powered by WordPress.