e-gradiva | HTML | CSS | JavaScript | Načrtovanje | |||||
SERŠ Maribor | Iskanje | Primeri |
Polje je shranjeno v spremenljivki, zato takrat ko se ustvari polje, se poveže nov predmet polja s spremenljivko. (Da, JavaScript podpira polja, ti pa spadajo v jedro JavaScript in ne v DOM). Posebna ključna beseda je konstruktor new
. S to besedo, JavaScript v pomnilniku ustvari prostor za polje. Polju se lahko poda tudi nekaj parametrov, kot so na primer: kdaj se bo polje ustvarilo, koliko elementov bo v njem. Javascript pa ima neko posebnost- velikost polj lahko kadarkoli spremeni.
var mojePolje= new Array(n)
Polje ima samodejno določeno dolžino (0 za prazno polje). Pomembneje je, da vrednost dolžine ne zaseda nobenega vnosa v polje; polje je samo za podatke.
Če bi hoteli vnaprej določiti velikost polja (na primer, vnaprej naložite vnose z ničnimi vrednostmi) tako da lahko določite začetno velikost, kot parameter v konstruktorju. Na primer, tako lahko naredite novo polje, ki drži informacije o 500 predmetih:
var dijaki = new Array(500)
Preddoločanje polja ne daje kakšne posebne prednosti, ker se lahko določi vrednost vsaki celici v vsakem polju ob vsakem času. Dolžina polja se sama prilagodi. Na primer, če se določi vrednost dijaki[700]
, polje prilagodi svojo dolžino do primerne celice (s tem da se štetje začne pri 0):
dijaki [700] = "Janko Babič" dolzinaPolja = dijaki.length // rezultat : 701
Vnašanje podatkov v polje je preprosto kot ustvarjanje določenih izjav, eno za vsak element polja. Spodnji stavki vnesejo v polje imena mest:
mesta = new Array(9) mesta[0] = "Maribor" mesta[1] = "Celje" mesta[2] = "Velenje mesta[3] = "Murska Sobota" mesta[4] = "Šmarje" mesta[5] = "Sevnica" mesta[6] = "Kranj" mesta[7] = "Novo mesto" mesta[8] = "Postojna"
Ta način za naseljevanje enega polja je precej dolgotrajen, ko pišete kodo toda, ko je polje postavljeno, je dostopanje do informacij precej preprost npr. :
nekoMesto = mesta[4] // rezultat : "Šmarje"
Bolj zgoščen način za ustvarjanje polj je mogoče uporabiti, če so podatki v določenem zaporedju (kot je prejšnje polje). Namesto da se piše zaporedje določenih stavkov, se lahko ustvari tako imenovano gosto polje tako, da se podatke zapiše kot parametre konstruktorju polja:
mesta = new Array("Maribor", "Celje, "Velenje, "Murska Sobota", "Šmarje", "Sevnica", "Kranj", "Novo mesto", "Postojna")
Izraz gosto polje pomeni, da so podatki natlačeni v polje, brez vrzeli, začnejo se na indeksni poziciji 0.
Primer kaže, kako bi lahko klicali navpično zbirko podatkov. Vsaka podatkovna točka vsebuje isti tip podatkov kot ostale podatkovne točke - ime kraja. Toda niso vse podatkovne zbirke enodimenzionalne. Lahko, na primer, samo hočete ustvariti polje, ki vsebuje različne delce informacij o mestu:
Maribor = new Array() Maribor.prebivalci = 213234 Maribor.pokrajina = "Štajerska" Maribor.univerza = true Maribor.lenght // rezultat : 3
Način dostopa do podatkov v polju, ki je identičen v NN in IE je sledeč:
Maribor.pokrajina // rezultat : "Štajerska" Maribor["prebivalci"] // rezultat : 213234
Ne pa rešitev z indeksnimi vrednostmi, ki daje različne rezultate v NN in IE:
Maribor[0]
V naprej je potrebno predvidevati, kako se bodo vračali podatki iz polja. Če se uporabi indeksna zanka, je enostavneje naseljevati polje z indeksnimi vrednostnimi; če so pomembna lastninska imena, potem se naseljuje polje na ta drugi način. Mogoče pa bo potreba po izgradnji večdimenzionalnega polja z uporabo obeh načinov.
JavaScript v NN4+ in IE4+ priskrbi še en način za ustvarjanje gostih polj in odpravlja napako v starem načinu. Novejši, enostavnejši način, za ustvarjanje gostih polj ne potrebuje predmetnega konstruktorja Array. Namesto tega, Javascript 1.2 sprejme, nekaj kar se imenuje vrstični zapis za ustvarjanje polj:
mesta = ["Maribor", "Celje, "Velenje, "Murska Sobota", "Šmarje", "Sevnica", "Kranj", "Novo mesto", "Postojna"]
Za primerjavo je tukaj še enkrat podan stari zapis:
mesta = new Array("Maribor", "Celje, "Velenje, "Murska Sobota", "Šmarje", "Sevnica", "Kranj", "Novo mesto", "Postojna")
Vedno se lahko nastavi vrednost vnosa v polje na nič ali se vstavi prazen niz, ki izbriše vse podatke, ki so zasedali ta prostor. Ampak dokler ni bilo operaterjev za brisanje v NN4 in IE4, ni bilo mogoče odstraniti elementa.
Brisanje elementa v polju odstrani indeks z seznama dostopnih indeksnih vrednosti, ne zmanjša pa dolžine polja, kot v sledeči sekvenci:
mojePolje.length // rezultat: 5 delete mojePolje[2] mojePolje.length // rezultat: 5 mojePolje[2] // rezultat: undefined
SERŠ Maribor : Strokovna gimnazija : 2004 : Rok Arnuš