JavaScript, nizi: opis

10. 5. 2019

JavaScript je sodoben programski jezik, edinstven po sintaksi in semantiki. Je specifičen, vendar preprost za uporabo in učinkovit, ko gre za razvoj dinamičnega in zanesljivega omrežnega vira.

javascript array

JavaScript polje je sodobna oblika predstavitve podatkov, ki se razlikuje od podobnih struktur drugih jezikov. Izkušnje na področju zastopanja in. T obdelave podatkov za javascript je vedno imel pomemben pomen. Tukaj v brskalniku deluje dialog z odjemalcem. Prav tukaj je pomembno, da hitro razstavite informacije iz strežnika in jih pobarvajte z uporabo potrebnih oznak. Strežniški jeziki oblikujejo vsebino in strukturo strani, vendar je njihova pravilna uporaba skrb za jezik brskalnika.

Predstavitev informacij: spremenljivke in podatki

Profesionalni razvijalec uporablja spremenljivke v preprostih primerih, ko »naredi« za (...) {...}, »nadzira«, medtem ko (...) {...}, »uporablja« stikalo () {case »«: ...}, ... strukturo v V vseh drugih primerih so informacije predstavljene s podatkovnimi strukturami.

Vzorec kode, avtorjev vložek, ne risanje

Podatki so redko predstavljeni s preprostim nizom spremenljivk. To je statični konstrukt, ki združuje skupnost pri poimenovanju in uporabi. Delo z nizi spremenljivk je omejeno s količino zagotovljenih informacij in se zato uporablja za preproste algoritme in lokalne funkcije.

Array array je bolj dinamična in zmogljiva različica spremenljivke, ko je podatkovna struktura. Z indeksiranjem matrike, na primer z vrednostno črto, časom ali drugim parametrom, lahko za vsak indeks imate različno vsebino. Matrika je lahko niz (definirana struktura) spremenljivk, ki bodo, ko bodo umeščene v drugo matriko, predstavljale dinamiko takšne strukture bodisi s parametrom bodisi s časom.

Končno lahko ustvarite niz objektov ali sistem objektov - konceptualna kombinacija podatkov, ki ima strukturo, vsebino in nabor metod, ki »same« kažejo ustrezne lastnosti.

V vseh navedenih primerih so informacije predstavljene na strog, formalen in dostopen način za obdelavo v jeziku. Samo če je koda sama manipulirana s "samim sistemom" objektov in nobena konstrukcija ni dovoljena zunaj metode predmeta, lahko rečemo, da obstaja možnost obdelati in ustvariti informacije, ki niso formalizirane ali formalizirane med izvajanjem algoritma.

Sintaktični jezikovni konstrukti

V prvem približku je polje JavaScriptov podobno sintaktičnim konstruktom drugih jezikov. Semantika je tudi enakovredna, razen oblik njenega izražanja. Lahko uporabite sintakso in semantiko JavaScripta in uspešno rešite vsako zahtevno nalogo.

JavaScript povezovalni niz

Nobene možnosti ni, da bo dosežena popolna mobilnost kode in prilagoditev ustvarjenega vira spremembam pogojev uporabe, da se lahko uspešno izvede ustrezen odziv na vsako nepredvideno spremembo vhodnih informacij in pravila za njegovo obdelavo.

Definiranje sintakse standardnega jezika Javascriptna polja Funkcije in metode so precej obsežne, vendar se v praksi običajno uporablja le del.

Vzorec kode, avtorjev vložek, ne risanje

forEach je najbolj zanimiva metoda matrike. JavaScript omogoča razvijalcu, da opredeli svojo lastno funkcijo za delo z vsakim elementom matrike. Ni pojma "odmor", kar pomeni, da je treba za vsako obravnavati kot operacijo na vseh elementih matrike.

  • aData.forEach (funkcija (val, ind, arr) {...});

tukaj 'val' je element, 'ind' je njegov indeks, 'arr' pa je dejansko polje 'aData'. Funkcija lahko izvede vsa dejanja na elementih matrike. Če ima določen pomen, bo to developerovo delovanje in ne skladnja jezika, tj. Matrika bo imela ne le vsebino, ampak tudi operacije, ki so ji na voljo v skladu s svojim namenom v splošnem kontekstu algoritma.

Poleg sintakse

Z uporabo niza predmetov JavaScript lahko presežete sintakso. Formalno, vsaka objektna spremenljivka in vsaka konstrukcija njene metode leži v sintaksi jezika, v kontekstu objektno usmerjenega programiranja pa se pojavi sistemski učinek - nova kakovost, ki ponuja svojo lastno sintakso: »neodvisni« odnosi med objekti.

Klasični koncept razvoja programske opreme: prevajanje formalnega algoritma v konkretne sintaktične konstrukcije jezika. Na vsakem mestu kode je točna povezava s tem, kar se je zgodilo s tem krajem in kaj se bo zgodilo po njej.

javascript remove array element

Objektno usmerjena formula je radikalno drugačna. Obstajajo predmeti, ki imajo vsebino in lastnosti. To je tisto, kar zagotavlja odnos (kodo, ki jih izvaja) predmetov med seboj. Koda zunaj teh razmerij ne sme biti.

V JavaScriptu je element matrike in mehanizem dostopa prvotni kontekst. Vsi elementi so enakovredni, zadnji pa je poseben. Matrika ni objekt, ampak z ogledom matrike skozi prizmo njenega zadnjega elementa, v kontekstu mehanizma dostopa, lahko dobite objekt, ki spremeni njegovo bistvo in lastnosti - to je pomembna opustitev trenutnega (modernega) koncepta objektno usmerjenega programiranja, ki ga posredno izvajajo razvijalci jezik javascript.

Javascript polje: ustvarjanje

Idealna in lepa konstrukcija polja:

  • var aData = []; // v bistvu vedno polje;
  • var aData = {}; // po vsebini, morda asociativno polje;

Lahko napišete in še "pametno":

  • var aData = novo polje ();

ali zelo "razvpiti":

  • var aData = novo polje (13).

JavaScript ne vztraja pri obvezni navedbi števila elementov in ne nalaga nobenih pravil glede indeksiranja, velikosti ali tipov elementov. Na tej preprosti podlagi ni priporočljivo zlorabljati njihovih pravic z njihovo omejitvijo: vsa polja morajo biti zastopana in uporabljena čim bolj prosto.

Uporabite polja

Vsak element matrike ima indeks - numerično vrednost od 0 do 2 32 , vendar se ta številka ne sme približati tej številki. Praktična in pragmatična matrika JavaScripta je na desetine, na stotine, na tisoče elementov, vendar nič več. Če potrebujete več, je bolje, da najprej pregledate algoritem ali tehnično nalogo, in če se nič ne zgodi, se lahko v globinah brskalnika oblikujejo samo večmilijonske masivne strukture.

dolžina matrike javascript

Indeksi nizov niso vedno dosledni. V JavaScriptu odstranitev elementa matrike pomeni ustvarjanje "luknje" v njem. V procesu uporabe matrike se lahko spremeni v "sito" indeksov, ki ne vpliva na njegovo učinkovitost, varnost drugih elementov.

JavaScript je prikrajšan za kratek konstrukt PHP: $ aData [] = "nov element"; in predlaga, da se natančno navede, kaj se doda in v kateri določeni element (s katerim indeksom) se vrednost spremeni. Vrsta elementa ni pomembna. Matrika lahko vsebuje vse, kar dovoljuje sintaksa, v poljubnem vrstnem redu in sortimentu.

Metode push () in pop () odpravljata pomanjkanje »$ aData [] = ...«, vendar opozarja razvijalca na zamisel o zadnjem elementu in vas opomni na koncept steka. Podoben par metod - unshift () in shift () - deluje s prvim elementom matrike in premika druge elemente k velikim indeksom.

Vzorec kode, avtorjev vložek, ne risanje

Za javascript je dolžina niza relativni koncept. Ne odraža vedno dejanskega števila elementov in je vezana na metodo dolžine, na primer v zanki, vedno preverite, ali element z zahtevanim indeksom dejansko obstaja.

Dimenzija polja

Sistemi so »vedno enodimenzionalni«, vendar je vsak sistem sestavljen iz notranjih podsistemov in je del dela bolj globalnega. Tako kot splošni koncept sistemov v JavaScriptu ni dvodimenzionalnega polja, lahko pa ga enostavno ustvarite z dodajanjem drugih nizov kot elementov matrike.

Vzorec kode, avtorjev vložek, ne risanje

Indeksiranje z notranjimi nizi se oblikuje na naraven način: "aData [i] [j] ... [z]", vendar je ideja vedno bolj zaželena:

  • var aElement = aData [i]; // izberemo notranje polje;
  • aElement [j] = ...; // uporablja element notranjega niza.

V JavaScriptu je dovoljeno dodajanje spremenljivke poljubne vrste in poljubnega vrstnega reda. Prav tako lahko dodate nekaj notranjemu nizu po splošnih pravilih. Za dostop do elementov lahko uporabite zaporedje [] oklepajev, vendar je vedno bolje, da izvedete prerazporeditev, omejeno na samo en par [] v vsakem izrazu.

Večdimenzionalni JavaScript nizi - v redu je sintaksa in je v praksi zelo uporabna. Toda kot v drugih jezikih je najbolje, če so dimenzije manjše in je berljivost kode višja. Programi so seveda napisani za računalnike, tolmače in prevajalce, toda ljudje jih pišejo, jih spremljajo tudi ljudje, in večja je razpoložljivost kode za avtorja in tretjega razvijalca, bolj praktično je.

Dodajte in odstranite elemente

Sintaksa JavaScripta omogoča dodajanje elementov v polje tako, da preprosto ustvarite nov indeks:

  • aData [3] = "nekaj vrednosti";
  • aData [100] = "zadnji element".

Po teh stavkih JavaScript bo matrika aData imela 101 element. Oštevilčenje se začne od indeksa 0. Za metodo dolžine ni pomembno, koliko elementov je bilo v matriki v času izvajanja "aData [100] = ...;".

razvrščanje matrike javascript

Za odstranitev elementa matrike v JavaScriptu lahko uporabite njegove metode pop () ali shift (). V prvem primeru bo rezultat var last = aInfo.pop () 'lubenica', v polju pa bo ostalo 'jabolko', 'hruška', 'mandarina'. V drugem primeru bo var first = aInfo.shift () 'jabolko', preostali elementi pa se bodo premaknili na začetek.

Ta možnost je zelo učinkovita, če je polje predmetov JavaScript predmet spreminjanja semantike in vsebine. Mehanizem vzorčenja elementa z njegovo odstranitvijo vam omogoča, da uporabite trenutni element matrike in greste naravnost v naslednji. Kot v stacku: vzet iz sklada, uporabil - in dobil dostop do naslednjega elementa.

Pri uporabi operaterja JavaScript lahko element polja izbrišete na naslednji način:

  • izbrišite aInfo [1].

Po izvedbi tega stavka bo element dejansko ostal v matriki, vendar bo njegova vrednost 'nedefinirana'. Z uporabo metode rezine lahko polje JavaScript razdelimo:

  • aData = aInfo.slice (0, 2).

Izvirna matrika aInfo bo ostala nespremenjena, v podatke pa bodo padle samo jabolka in hruške. Če pišete:

  • aData = aInfo.slice (2);

potem sta v nizu aData le 'mandarina' in 'lubenica'.

Razvrščanje, niz in elementi elementov

Operacije JavaScripta: razvrščanje niza, pretvorba matrike v niz, oblikovanje niza iz niza in spreminjanje vrstnega reda elementov je najbolj zahtevano. Te operacije se izvajajo z uporabo metod:

  • razvrsti (razvrsti elemente),
  • pridruži se (pretvori niz v niz),
  • split (pretvorite niz v niz),
  • obratno (spremeni vrstni red elementov).

To so najbolj zanimiva in uporabljena orodja za obdelavo nizov in nizov. Zanimiva značilnost: za JavaScript je element matrike in niza značilne komplementarne lastnosti. Če ne upoštevamo značilnost sodobnih jezikov: vsaka spremenljivka je vedno niz, to pomeni, da se lahko vedno obravnava kot niz, nato pa je preoblikovanje matrike v niz in nazaj zelo priljubljena in učinkovita operacija.

javascript dvodimenzionalni niz

Uporaba združitvenega / razcepitvenega para je še posebej izvirna: združitev elementov matrike v niz se pojavi na enem ločilniku (pogosto prazen, to pomeni, da so elementi združeni v en niz), inverzno preoblikovanje v polje pa se izvede na drugem ločilniku.

Vzorec kode, avtorjev vložek, ne risanje

Če ne upoštevate implementacije metod združevanja in ločevanja, vam uporaba tega para omogoča ustvarjanje odličnih algoritmov.

Funkcija reverse () se uporablja neposredno za polje in obrne vrstni red elementov v njem. Funkcija sort () razvrsti elemente v izvornem nizu, vrne rezultat, razvrščen po abecedi.

Če posredujete funkcijo kot parameter za razvrščanje (funkcija (a, b) {...; vrne rezultat;}), lahko razvrstite vrstni red z lastnim algoritmom. Takšna funkcija mora vrniti '0', če sta 'a' in 'b' enakovredna, '-1' - če bi 'a' pred 'b' in '1' - če bi 'b' pred 'a'.

Če ni nobene možnosti, da bi dobili napačen rezultat glede na obratno () funkcijo, potem je v zvezi z razvrščanjem ključnega pomena algoritem njegovega izvajanja in preizkušanja pisane kode. To je še posebej pomembno zapomniti. ko matrika vsebuje znake (strune) nacionalne abecede.

Pametni nizi in lastni indeksi

Za JavaScript je asociativno polje primitivna oblika predmeta. Načinov preprosto ni, vendar obstaja samo par ključev in vrednosti. Za označevanje takega niza se uporablja par zavitih oklepajev.

Vzorec kode, avtorjev vložek, ne risanje

V tem primeru se uporablja niz cSortCols, katerega elementi imajo tri vrednosti:

  • '' - brez sortiranja;
  • 'u' - razvrsti naraščajoče (navzgor);
  • 'd' - razvrščanje v padajočem vrstnem redu (navzdol).

Vendar pa je, odvisno od tega, kaj točno je razvrščeno (v tem primeru je bila stran zasnovana za prevoz potnikov na minibusih): potniki, prevozniki, avtobusi ali mesta. Zato je v tabelah elementov dovoljeno razvrščanje po posameznih stolpcih. Zato ima na vsaki posamezni strani niz cSortCols posebno vsebino: cUsersSort, cCompaniesSort, cBusesSort ali cCitiesSort.

Ustvarjanje asociativnega polja v JavaScriptu lahko gre še dlje. Navedeni primer razvrščanja je posebna rešitev zelo posebne naloge: izhod iz situacije, ko lastna funkcija JavaScripta (sortiranje) ni uporabna.

Podatkovne strukture so zelo dobre in uporaba spremenljivih nizov je zelo nepraktična. Vendar nihče ne prepoveduje uporabe imen spremenljivk kot indeksov. Matrika, v kateri so indeksi predstavljeni z imeni spremenljivk, je čudovita mobilna podatkovna struktura. Ni nujno, da imajo vse indekse, vendar bodo v vsakem mestu programa v pravilni sestavi.

Razvijalec lahko oblikuje pametna polja, ki odražajo prave podatkovne strukture na pravem mestu. Hkrati pa je možno, da ne nadaljujemo s polno uporabo predmetov, uporabimo samo njihove zmožnosti na stopnji opisovanja strukture in vsebine podatkov.

Vadite delo z nizi

Za razliko od strežniških jezikov, v katerih je vedno jasno, kaj je treba obdelati in kakšen bi moral biti rezultat, JavaScript zahteva posebno večnivojsko razmišljanje. Stran spletnega mesta lahko nepričakovano sproži skriptne dogodke in klice. Tudi kadar je tehnična naloga za spletno stran na idealni način, dialog z obiskovalcem pa ne more preseči določenih meja, se zgodi presenečenje.

javascript dodaj v polje

Značilnost JavaScripta je, da lahko element strani aktivira določen proces. Posledično se bodo spremenili določeni podatki, nizi, objekti. Drugi proces mora imeti idejo o tem, kaj se je spremenilo.

V idealnem primeru bi morali biti procesi naslikani na predmete in polja, tako da vsak dogodek, ki sproži en proces, vnaprej določi vse, kar je potrebno za vse druge procese, ki so od njega odvisni.

Ne morete pozdraviti objektno usmerjenega programiranja in ne poskušajte zagotoviti, da so vse strani spletnega mesta opremljene s celovitimi sistemi objektov, ki sami vstopajo v razmerja in da ni nobene vrstice kode zunaj metod teh objektov, ampak tudi v primeru izključno klasičnega sloga. JavaScript nizi, še posebej asociativni in oboroženi nizi izvedb funkcije forEach, so odlično orodje za zanesljivo in praktično kodiranje.