JS nizi: asociativno polje v vrsti, niz objektov. JS: odstranite element matrike

Zlaganje podatkov in ustvarjanje funkcij z rekurzivnimi algoritmi je merilo za določanje kakovosti dela programerja. Običajni algoritem ni bil nikoli najboljša rešitev v smislu razvoja, razhroščevanja in spreminjanja. Samo funkcionalno popoln algoritem, ki zagotavlja rekurzijo pri porazdeljeni obdelavi podatkov, se lahko obravnava kot razvojna rešitev.

Značilnosti DOM + javascript

Stran, naložena v brskalnik, tvori drevo elementov DOM, ki ima neposreden dostop do javascripta. Tukaj so JS nizi najpreprostejši objekti, razen naravne funkcionalnosti, ki izvajajo idejo skladov (shift /unshift in push /pop). Dodelitev prvega in zadnjega elementa kot posebne lastnosti matrike ima pomembno vlogo pri oblikovanju opisov podatkov in algoritmov.


Rekurzivna javascript funkcija lahko uporablja dodatne sintakse in semantiko, ki niso na voljo v drugih jezikih. Anonimne funkcije omogočajo izdelavo konstruktov sintaktičnega jezika s svojo lastno funkcionalnostjo. Dogodki se pojavijo na elementih drevesa DOM in njihovi upravljavci se lahko spremenijo. JS kodno delo je vzporedno izvajanje mnogih procesov, katerih dinamika določa celotno funkcionalnost, naloženo v brskalniku, stran in dejanja obiskovalca. Funkcionalnost, ki se izvaja v obliki objektnih metod, v povezavi s "delitvijo" odgovornosti za obdelavo informacij med stranko in strežnikom lahko zmanjša obremenitev strežnika in pokliče JS-kodo.

Spremenljivke, nizi inobjekti

Opis podatkov določa algoritem njihove uporabe. S takšnim besedilom je res, da sta oba podatka primarna in obratno: primarni algoritem. "Nihče ne more delati napak" - v isti sferi odločitev sprejme tisti, ki postavi ločilo ali kaj drugega.


Za naravni jezik je značilna najvišja stopnja svobode:
  • „izražanje pomena“ tistim, ki govorijo;
  • "razumevanje pomena" tistih, ki poslušajo.
  • "Izraz pomena" ni tisti, ki bi bil drugačen od "svobode uporabe" drugega govorca. javascript je programski jezik. Zato ni svobode in ne more biti. Programiranje je trdna sintaktična konstrukcija in natančen pomen. Tudi pogoj, da se tip spremenljivke lahko določi le v času njegove uporabe, ne daje nobenemu svobodu.
    Logika javascripta je takšna, da je mogoče razlikovati spremenljivko od matrike le v kontekstu opisa ali uporabe, in to je enigmatična svoboda. Toda možnost preoblikovanja ničesar, na kakršen koli način daje programerja potrebna orodja za izgradnjo prostih podatkovnih struktur in algoritmov za njihovo obdelavo. Logika javascripta je podobna logiki drugih jezikov, vendar pa je njena podobnost z drugimi jeziki končana. Kar je mogoče storiti na JS, je mogoče natančneje reproducirati v drugih jezikih, bližje kot javascript v smislu funkcionalnosti in razvoja.

    Sintaksa in semantika nizov javascript

    JS nizi so objekti. Drugi predmet pa je preprosta spremenljivka, vendar v pravem trenutku lahko postane sistem objektov. Preprosta spremenljivka je tudi matrika, če ji podate pravofunkcionalnosti.
    Dve različici opisa matrike ali objekta se štejeta za zadostne: "[]" in "{}". Oglati oklepaji so preprosta matrika ali objekt brez metod. Slika oklepaja je asociativno polje ali objekt z metodami. Vendar so to le splošne določbe. Sintaksa je veliko enostavnejša:
    Uporaba te skladnje je lahko veliko bolj zapletena. Prva dva primera sta navadni nizi: ustvarjeni so v zanki, ki vsebuje črke latinice, ki se razlikujejo le v primeru črk in indeksov. V prvem primeru je indeks zaporedna številka črke po abecednem vrstnem redu, v drugem primeru je indeks koda črke. Tretji primer ustvari asociativno polje. Tu je črka indeks in njegova koda je vrednost. Če želite, lahko vse zmedete. Drugi primer takoj prikazuje funkcijo javascript. Koda črke "A" = 65. Na tej preprosti podlagi v polju avtomata postavimo 64 negotovih vrednosti.

    Funkcionalnost nizov

    JS nizi nimajo toliko metod, ampak razvrščajo, za vsakogar, filter, zemljevid, vsak /nekaj, zmanjšanje /zmanjšanjeRight zasluži posebno pozornost. Tukaj lahko uporabite svoje funkcije za določitev želenega dejanja nad elementi matrike. Vrstice znakov - priročna oblika prikazovanja nizov. Niz lahko vedno pretvorite v niz in obrnete. Do niza JS v nizu dostopa metoda:
  • sStr = aData.join ('' delimiter '')
  • Vsi elementi matrike aData postanejo ena vrstica. Pri združevanju lahko uporabite "ločilo", ki je lahko prazno, z enim znakom ali nizom znakov."Separator" ne posega v linijsko metodo:
  • aData = sStr.split ("ločilo")
  • Uporabite drug "ločilo". Ta mehanizem vam omogoča, da zgradite precej zanimive algoritme za obdelavo informacij, čeprav je glavni namen preoblikovanja "JS nizov - vrstic" prenos in shranjevanje podatkov. Vrstica je bolj kompaktna kot matrika, bolj je primerna za shranjevanje v podatkovni bazi itd.
    Nizi se lahko dopolnijo z drugimi nizi (metoda concat), spremeni vrstni red naslednjih elementov, da se obrne, razvrsti (sortira) itd. zanimiva in praktična funkcionalnost je v prvem in zadnjem elementu.

    Organizacija stack podatkov

    je prišla zadnji, šla je prva - zamisel o stacku. JS nizi so uspeli zagotoviti funkcionalnost te ideje. Če v polje vnesete nov element:
  • aData.push (oNew)
  • On bo na koncu. Če izvlečete zadnji element matrike (metoda pop), bo iz nje odstranjen. Postopek brisanja naslednjega elementa bo preusmerjen na zadnji element.
    Dejstvo je, da se dodatek elementov v polje (push) poveča, izločanje elementov (pop) pa ga zmanjša. Pomembno je, da obe metodi delujeta na koncu matrike. Podoben par premik /unshift deluje s prvim elementom matrike, ki premika druge elemente naprej ali nazaj. Glede na logiko stvari je bolj priročno in jasnejše delo z zadnjim elementom matrike, vendar je v nekaterih nalogah pomembno delo s predponami in ne s priponami. Če združite elemente v niz in mehanizem skladov, lahko dodatno razširite funkcionalnost sintakse javascript. Na primer, vsielement vrste sadja (jabolko, hruška, oranžna, mandarina):
  • Potem potisnite /pop na element matrike - delo z lastnostmi posameznega sadja: barva, tip, datum dobave
  • Vse sadeže izpraznite v eno celoto - string in push /pop sta lastnosti trenutne razpoložljivosti sadja: skupna teža, sestava, številka
  • Iz matrike lahko izvlečete podmase (metoda rezine) in izhodna matrika ostane nedotaknjena. Če pa izbrišete element matrike v js, se bo spremenil neposredno na mestu. Rezultat metode odstranitve elementa (-ov) ni spajanje.
    Pomembno. Pri brisanju: prvi parameter je indeks, prvi element se izbriše, drugi parameter je število izbrisanih elementov. Pri ekstrakciji submasterja: prvi parameter je indeks prvega elementa, drugi parameter je indeks zadnjega. Po prejemu novi JS nizi prejmejo število elementov, ki so med prvim in drugim parametrom, vključno.

    Večdimenzionalni nizi javascripta

    javascript ne omejuje programerja v obsegu dimenzij matrike. Nič ne preprečuje ustvarjanja struktur (indeksi se sprejemajo s številko trgovine, skladiščem /polico, imenom izdelka /skupine blaga):
  • aShop ['NoShop'] ['BoxF'] ['Fruits'] ['Fruit']; sadje
  • aShop ['NoShop'] ['BoxB'] ['Jagode'] ['Berry']; jagode
  • aShop ['NoShop'] ['BoxP'] ['Krompir'] ['Krompir']; krompir
  • To deluje. Če pa v prvih dveh modelih obstaja več različic vrste sadja (jagodičja), potem ni prostora za variantne sorte in potrebna je druga dimenzija. V tretjem primeru je mogoče določiti sorte krompirja, vrste pa preprosto ne obstajajo. Očitno je v praksi takšna rešitevokorne, delovno intenzivne spremembe in testiranja. Ni praktično. Najbolje je, če je dimenzija ena, največ dve - v zelo redkih primerih. Dinamična in praktična rešitev na JS: niz objektov. Tukaj lahko takoj prepoznate objekt shranjevanje, ki bo predmetov police (skladišča), in police bodo predmeti po vrstah, sortah, skupinah. Po želji lahko dodate ali odstranite matriko, JS ponuja združevanje /ekstrakcijo in ekstrakcijske metode. V prvem primeru se skupina blaga, na primer, preseli iz skladišča v trgovino ali nazaj, v drugem primeru pa samo prodaja in izgine iz trgovine (odstranjena iz polja).

    Združenja in asociativni nizi

    V zadnjih letih si programiranje prizadeva za poenostavitev. Boj za programske jezike za preživetje ni pokazal tistega, ki je zmagal, temveč tisti, ki je ključ do pravega uspeha. Vsi jeziki dopuščajo oblikovanje prostorskih struktur v smislu dimenzij, v praksi pa sodobni programerji uporabljajo dve različici:
  • preprosto (indeksno) polje;
  • asociativno polje.
  • Oba konstrukta imata indekse od nič do trenutnega števila elementov. Drugi vam omogoča, da se sklicujete na vrednost z določenim imenom. Po splošni logiki jezika je asociativno polje JS urejen niz parov. Poleg tega, če je potrebno, par "ključ" - "vrednost" lahko spremenite v krajih. Če obstaja matrika s 16 pari: številke v šestnajstiškem številčnem sistemu, potem lahko ustvarimo preprosto matriko s šestnajstimi števkami od 0 do 15.vrednosti elementov za izbiro znakov (številke niso): ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', "A", "B", "C", "D", "E", "F"] in pretvorijo število iz decimalnega sistema v šestnajstiško in nazaj. Združenja - notranja lastnost podatkov. Programer lahko uporablja združenja za organiziranje podatkovnih struktur na ravni objekta. V tem kontekstu je glavni poudarek na ustvarjanju realnih objektov, znotraj katerih obstajajo asociativni nizi na lastnostih podatkov.

    Objekti matrike

    Predmet, v katerem se nahajajo nizi lastnosti, nakazuje, da jih je mogoče uporabiti v smislu njihovih metod. Bistvo (vrste, sorte, lastnosti jabolk in hrušk se razlikujejo, še bolj se razlikujejo od citrusov ali jagod. Vsako sadje ali jagodičje (na primer po vrsti in sorti) je edinstveno. za vse vrste in sorte.Ko blago prispe v trgovino, se zapolni niz prejetih objektov. Ta matrika ima svoje funkcije dostopa do informacij, ki jih vsebuje, in podvaja metode svojih objektov.
    Pri takšni odločitvi je mogoče, na primer, takoj izračunati število blaga, tako na določenem položaju, kot na vseh položajih. Vse izdelke, ki so na voljo, lahko prikažete ne glede na vrsto in sorto. Deloval bo točno tisti izdelek, na katerega je bila naslovljena pritožba. V praksi takšen objektno usmerjen pristop omogoča, da se ne obračate na programerja v fazi delovanja sistema objektov, ker ne zahteva programiranja. Programer je napovedallastnosti, vrste, stopnje in metode dela z izdelkom. To je dovolj za prodajo vseh zgoraj navedenih stvari in več: breskve, kumare, jajčevce, rozine, oreški

    Sistem objektov v dinamiki

    Razumevanje bistva informacij, ki jih je treba obdelati, je izredno pomembno. Bolj kot je popolna ideja o predmetnem področju in realnih objektih, ki jih manipulira, natančneje lahko opišete podatke in razvijete algoritme za njihovo obdelavo. Idealna slika kvalitativno izpolnjene naloge: sestavi se seznam osnovnih objektov in objektnih sistemov. Določene so vse lastnosti vsakega objekta in povezava med njimi.
    Vsaka metoda vsakega objekta je funkcionalno popolna in rešuje le eno nalogo. Predmet se lahko obravnava le z njegovimi metodami, zato ni mogoče ovirati njegovega delovanja od zunaj. Najpogostejša rešitev je funkcija javascript, ki je povezana z lastnostmi elementov DOM in funkcijami, ki dostopajo do objektov samo s svojimi lastnostmi. Če je potrebno, razviti nekaj izdelati ali vmesnik s sistemom ustvarjenih predmetov, ali kateri koli predmet, kot je potrebno.

    Sorodne publikacije