JavaScript-matrika in njeno ustvarjanje.

V tem članku bomo pogled na JavaScript nizov, njenih sestavnih delov.JavaScript je popolnoma usmerjen skriptni jezik, ustvarjena za programiranje.V resnici spozna jezikovno ECMAscript (ECMA-262 standarda).

Kje se uporablja JavaScript?Uporablja se kot vdelana jeziku, da se določi pot do prijave predmet programske opreme.To je mogoče najti v brskalniku: se tam uporablja kot skriptni jezik, ki omogoča interaktivnost na spletnih straneh.

pomembne arhitekturne značilnosti tega proizvoda so dinamična in šibki tipkanje, avtoupravlenie spomin, idealna programiranje funkcije, ki so predmeti v prvo kategorijo.

Pravzaprav, v JavaScript prizadela različne razloge, ker bi bil razvoj ustvariti jezik, podoben Java, vendar enostaven za uporabo, ki jih programerji.Mimogrede, JavaScript jezik nima nobenih podjetje ali organizacijo, ki se razlikuje od številnih slogov programskih spletni razvijalci uporabljajo.

Upoštevajte, da JavaScript - registrirana blagovna znamka koncerna Oracle Corporation.

Kaj je matrika?

podatki imenuje Array tip, ki shranjuje oštevilčene vrednosti.Vsak tak vrednost imenujemo kot sestavni del matrike, in številko, ki je sestavni del imenovanega indeks.JavaScript-netipskih matrika.To pomeni, da imajo lahko podrobnosti matriki kateregakoli tipa, z različnimi predmeti, ki pripadajo isti niz, imajo povsem različne sloge.

dodajanje JavaScript-matrika je dinamična, in je rekel, da je fiksna velikost ni treba razglasiti.Po dodajanju nove dele kadarkoli.

Manufacturing matrika

Uporaba jezika JavaScript, da ustvarite matriko precej težko.Obstajata dva načina za to.Prvi zajema proizvodnjo array uporabo dobesedni - od oglatih oklepajih, znotraj katerega je dano seznam predmetov, deljeno z vejicami.

  • var prazna = [];// Prazen niz;
  • numers = var [4, 1, 2, 5];// Niz petih digitalnih komponent;
  • var diff = [1,5, false, «besedilo"];// Matrika s tremi elementi različnih tipov.

Značilno je, da se ne zahteva, da so vrednote preproste (in številka vrstice).To je lahko tudi vsi drugi izrazi, na primer, ob literale druge funkcije in nizi.

drugi način, da ustvarite paleto oblikovalca je, da pokličete Array ().Vabilo njim so tri načine:

  • Calling oblikovalec brez argumentov: var B - novi Array ().Predvideva oblikovanje praznega ekvivalenta matrike literal prazna [].
  • Designer je jasno navesti vrednost n komponent matrike: var b = new Array (1, 3, 5, 8, "linijo", true).V tem primeru je oblikovalec predstavilo seznam argumentov, ki se pretvorijo v komponent novega matrike.Argumenti so napisana na paleto, je lokacija, kjer je označeno.
  • Določitev obsega za kasneje določanje vrednosti.To se naredi z navedbo paleto odkrivanja številkami v okroglih oklepajih: var B = novi Array (5).Ta metoda za odkrivanje vključuje razporeditev paleto potrebnega števila sestavnih delov (od katerih je vsak navedene kot nedefinirane) z možnostjo določanje vrednosti v procesu razprave.Ta oblika se običajno uporablja za vnaprej razporediti Javascript diod, katere dolžina je znan vnaprej.

pisanje, branje in dodal deli paleto

dosežejo komponente matrike, lahko uporabite [] operaterja.Mimogrede, vsi deli v JavaScriptu, ki se začnejo z ničlo, oštevilčene.Da bi dobili potrebne elemente, je njena številka navedena v oklepaju.Praviloma se lahko postavke je treba spremeniti.Javascript dodati na paleto, boste morali dodeliti novo vrednost.

treba opozoriti, da lahko v JavaScript paleto shranite poljubno število elementov koli vrste.

Dolžina

Torej vemo, kaj JavaScript.Dolžina array na splošno je zanimiv fenomen.Dovolite nam, da preuči podrobneje.Vsi razponi so jih zasnovali oblikovalec Array (), in opredelila zahvaljujoč dobesedni niz imeti določeno dolžino lastnine, ki opozarja, da je skupno število elementov so ohranjeni.Ker lahko matrika negotovi o podrobnostih (označen s nedefinirana), natančnejši izraz zveni tako: Dolžina Kakovost je vedno večja z enim od največjih številka (indeks) komponenta array.Dolžina Kakovost se samodejno prilagodi, ostal natančen pri pojavljanju v paleto novih delov.

prišel na končno komponento polja, ki jih lahko uporabite celovečerni.

Zadnji element ima indeks je manjša od ene velikostjo polja.Po štetju vedno začeti iz nič.Oh, ta JavaScript!Dolžina matrike je odvisna od natančnega število kosov.Torej, če ne veste, koliko bi morali biti, vendar boste morali obrniti na končnem elementu matrike, morate uporabiti zapis: v.length - 1.

Bust dele matrika

Zelo pogosto se nepremičnina dolžina, ki se uporabljajo za ponovitev čez paleto delov v ciklu:

  • var sadje = ["Strawberry", "breskev", "jabolko", "banana"];
  • za (var i = 0; i & lt; fruits.lenght; i ++);
  • document.write (sadje [i] + «...»).

V tem primeru, se zdi, da so sestavine dajejo stalno in začeli s prvim delom, ki ima v lasti indeks nič.Če ne, preden pokličete vsak element matrike je treba preveriti, ali je ta določen.

cikel Včasih se uporablja tudi za inicializacijo komponent.

Zoom in krajšanje paleto

sprašujem, kako s pomočjo JavaScript jezika v godalni paleto dodati?V procesu dela z nizi, dolžina dolžine samodejno izboljša kakovost, zato moramo skrbeti za to sami.Nujno je, da se spomnimo približno eno podrobnost - last dolžina ni samo za branje na voljo, ampak za zapis.Če je dolžina atributa kakovosti vrednosti, ki daje velikost toka, potem je matrika zniža na vnaprej določeno vrednost.Vsi sestavni deli, ki niso vključeni v novo serijo indeksov, nasloni, in njihove vrednosti so izgubljeni, čeprav kasneje vrniti nazaj dolžino - se ne obnovljena.

zelo enostaven za čiščenje, saj je matrika: foo.length = 0.

Če bo kakovost dolžine delovanja večje od njegove trenutne vrednosti ob koncu niza so nove, neznane elemente, ki jo bodo povečali na želeno velikost.

Odstranjevanje deli matrika

izbrisati operaterja določa komponente array nedefiniran, vendar pa še vedno obstaja v tem primeru.Če morate odstraniti postavko JavaScript paleto, tako da je bilo razseljenih, ostali deli za sedež, morate uporabiti eno od metod za napovedovanje paleto.Metoda Array.shift () odstrani prvo komponento, pop () - končno sestavine in način spoj () - ena ali vrsto sestavnih delov kjerkoli v matriki.

večdimenzionalne Arrays

mislimo, da razumemo malo o kakšni JavaScript.Dvodimenzionalni nizi -, ki jih je treba nadalje obravnavati.Se spomnite, da je lahko v JavaScriptu nizi kot sestavin vsebuje še druge elemente?Ta funkcija se uporablja za proizvodnjo večdimenzionalno nizi.Za obisk sestavine v paleto nizi, je dovolj, da se nosilce dvakrat.

Povezovalne matrike

Zdaj smo izvedeli, kako JavaScript blagovna uporabljati asociativne nize.Da bi to moramo pogledati v teoriji storiti: asociativne nize so včasih imenujemo razpršene tabele.Zaradi njih, se uporabljajo indeksi linijo.Uporaba takšnih struktur, ki spominjajo na uporabo imena lastnosti enostavnega objekta, vendar v tem izvedbenem primeru, kadar dela v obliki diod.Kot v JavaScriptu ne obstajajo načini, da delujejo asociativne nize, se uporablja veliko manj pogosto kot običajno.Opozoriti je treba, da se še vedno lahko koristni za shranjevanje podatkov in poenostavi shranjevanje delov, do katerih želite dostopati.

izhodna matrika

In zdaj bomo proučevali v JavaScript?Izhod niza k oknu (na zaslonu), ter izhodni vrednosti komponent matrike.

Če program, ki ga želite prikazati vrednosti vseh sestavnih delov, potem je primerno, da se uporabijo navodila za.Zanimivo je, da je spremenljivka, števec se uporablja v pravilih za ta indeks sestavnega array.

Čiščenje

želite filtrirati niz JavaScript, morate ponastaviti dolžina:

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

naslednji prikazuje izvajanje okolici jasno (), v JavaScript-okvir, Prototype:

  • jasen: funkcija () {;
  • this.length = 0;
  • vrne to;
  • }.

dodajanje in odstranjevanje komponent

No, bomo še nadalje raziskovanje tega zanimivega jezika JavaScript.Elementa in se lahko odstrani in dodamo na enak način kot običajne lastnosti drugih predmetov.Vendar pa obstajajo nekatere razlike: medtem ko lahko seštevanjem numeričnih lastnosti spremenijo kakovost dolžine in sprememba nepremičnine dolžine mogoče odstraniti numerično kakovosti.Načeloma algoritem določanja lastnosti v teh matrikah je:

  • Ko dodate neznane lastnosti digitalnega i, če je dolžina enaka ali manjša od i, dolžina je odločen, da bo i + 1 ,.
  • Ko spremenite kakovost dolžine so narejene kakor sledi: če je dodeljena vrednost manj kot nič, potem pa vrže RangeError.Likvidirana vse številčne kakovosti indeksov, ki znašajo nove dolžine in se več kot.

splošno odstraniti element JavaScript paleto je enostaven.Konec koncev, tudi nastavitev dolžine, je potrebno odstraniti iz "ekstra" komponent.Zato je možnost čiščenja v matriki.Če je spremenljivka dodeli novo prazno paleto za neznanega razloga, ni zadovoljna, zato je potrebno ponastaviti toka, njena kakovost pa je dovolj, da dodelite vrednost ničelne dolžine.

metode unshift, premik, pop in potisnite

Kljub dejstvu, da so komponente matrike spremenila ročno, mnogi priporočajo to uporabiti vgrajeno metod.To je ta odtenek zagotavlja pravilno vrednost, kakovost in pomanjkanje dolžine v prelazov nizov.Mimogrede, pravilna dolžina bo kakovost ujema število sestavnih delov.

Postopek potisni premakne na koncu polja prenese na podrobnostih.Metoda pop vrača na končno komponento in jo odstrani.

splošno v Internet Explorerju pod osmo različico unshift lahko vrne undefined, v drugih brskalnikih - nova vrednost dolžine.Torej na vrednost povratnega od unshift je bolje, da ne upam.

Dodajanje in odprava delov sredi polja

Če želite izbrisati paleto JavaScript, boste morali sprejeti?Znano je, da je postopek za podpis spoja Array.prototype.splice.

On odstopi od komponent matrika deleteCount, začenši z indeksom začetku.Če ste prenesli več kot dva argumenta, so vse nadaljnje trditve postavi v matriki namesto likvidiran.Če začetek je minus, indeks, iz katerega nadaljevati umik bo enaka dolžini + začetek.Vrne niz elementov prihaja iz daljinskega upravljalnika.

Dejansko uporabo metode spoj, komponente mogoče odstraniti od sredine matrike, ali dodamo poljubno število kjerkoli v matriki.

V najpreprostejši primer, če boste morali odstraniti komponento z indeksom i, morali zahtevati metodo matrika spoja s parametri i in 1.

Načeloma, druga možnost po metodi spoja ni obvezno, ampak obnašanje enega argumenta v vsakem brskalniku različno.

Na primer, v Firefoxu, v zadnjih različic Opera, v Safari in Chrome vse postavke bodo umaknjeni pred koncem niza.

v IE ne bo likvidirana nobene komponente.Prva sprememba je nemogoče napovedati obnašanje Opera - bo treba odstraniti en kos z indeksom začetku - 1. Zato morate vedno prenese v metodi vsaj dve komponenti.

Keys

Seveda, učenje JavaScript, asociativne nize, kot je bilo že omenjeno, morate prav tako ne izgubimo izpred oči.To je abstrakten vrste informacij (vmesnik za podatkovno skladišče), ki vam omogoča, da shranite parov obliki "(ključ, vrednost)" in doda par podporne dejavnosti, kot tudi brisanje in iskanje ključnih pari:

- POIŠČITE (ključ).

- INSERT (vrednost, ključ).

- odstranite (ključ).

Menijo, da v asociativnega paleto mogli rešiti dva para z istim ključem.V nekaj K + vv imenovano vrednost v povezavi s ključnimi k.Semantika in imena Zgornje operacij v različnih izvedbah takih nizi so lahko različni.

Tako učinek imel (ključa) vrne vrednost, povezanega z danim ključem ali določenega predmeta UNDEF, kar pomeni, da manjka vrednost povezana z danim ključem.Dve drugi ukrepi ne vrne ničesar (razen podatkov, ki ste jih uspešno izvedeno transakcijo).

splošno, iz vidika vmesnika, ki je asociativna matrika obravnavati le kot matrike, pri čemer je lahko kot indeksi se ne nanaša samo na celih, in druge vrste vrednot - na primer, linij.

način, podpora za take nizi ima veliko razlagajo na visoki ravni programskih jezikov, kot so PHP, Perl, Ruby, Python, Tcl, JavaScript in drugi.Za jezike, ki nimajo vgrajene orodij za delo z asociativne nize, ustvaril ogromno število izvedb v obliki knjižnic.

primer asociativni niz lahko služi kot telefonski imenik.Pri tej izvedbi, je vrednost niza "F.IO + e ", in ključ - telefonska številka.Telefonsko številko je eden gospodar, ampak ena oseba lahko v lasti nekaj sob.

Associated podaljšanje

je treba opozoriti, da je najbolj znan širitve vključujejo naslednje:

  • VSAKA - «iti» rešiti vse pare.
  • CLEAR - izbrisati vse vnose.
  • MIN - najti par z najnižjo ključem.
  • MAX - najti par z najbolj ključnega pomena.

V zadnjih dveh primerih morate na tipkah naveden učinke primerjavo.

izvedbe asociativne nize

Obstaja veliko različnih izvedb asociativne array.Najpogostejši izvajanje lahko temelji na preprostem matrike, katere sestavine so hlapi (ključna vrednota) EU.Da bi pospešili iskalni ukrepi se lahko naročite na sestavin niz in izvajati ključno ugotovitev z binarno iskanje.Ampak bo povečala količino časa, ki jih potrebujete, da dodate nov par, saj bodo morali "push" komponent polja, ki se je pojavil v prazno celico, da paket svež rekord.

najbolj znana izvedba, ki temeljijo na različnih iskalnih dreves.Na primer, v tipičnem obravnava sobni STL od C ++ zemljevidu posodi je realiziran na podlagi črno mahagonija.V slogu Ruby, Tcl, Python uporablja vrsto hash tabele.Obstajajo tudi druga izvedba.

Na splošno je vsaka izvedba ima svoje prednosti in slabosti.Pomembno je, da so bili vsi trije postopki izpolnjene v povprečju in v najslabšem obdobju odtenke o (log n), kjer je n - trenutno število rešiti par.Za usklajenih iskalnih dreves (vključno s črnimi in rdečimi dreves), je ta pogoj izpolnjen.

znano, da izvedb, ki temeljijo na hash tabele, ki so opredeljene kot povprečnega časa O (1), ki je boljši od ukrepov, ki temeljijo na iskalno drevo.Seveda, to ne zagotavlja izvedbe visoke hitrosti za določene posle: trajanje stavka INSERT je naveden kot najslabšem primeru O (n).INSERT proces se izvaja za dolgo časa, ko je razmerje dolžnost doseže najvišjo točko, in da je treba rekonstruirati indeks hash tabelo.

način, te izjave hash slaba, da je na tej podlagi ni mogoče izvesti hitro dodatni ukrepi MAX, MIN in prečkanje algoritem, da shranite vse pare v padajoči ali povečanje ključe.