e-gradiva     HTML CSS JavaScript Načrtovanje    
  logotip  
SERŠ Maribor Iskanje Primeri

Ustvarjanje polja

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

Naseljevanje polja

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.

Še ena možnost

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")

Brisanje vnosov v polje

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š