\(\renewcommand{\vec}[1]{\mathbf{#1}} \DeclareMathOperator*{\sijoitus}{\Big/} \newcommand{\eval}[2]{\sijoitus_{\kern-0.7em#1}^{\kern0.7em#2}\!} \)

5.3.8 Kokoelmat - taulukko

Kokoelma on tietorakenne, johon voi kerätä suuren määrän tietoja. Kokoelma antaa keinoja tietojen löytämiseen, läpikäymiseen, lisäämiseen, muokkaamisen ja poistamiseen.

Erityisen käteviä kokoelmat ovat toistolauseiden kanssa, koska yleensä kokoelman sisältö indeksoidaan, eli kullakin tiedolla on jokin tunniste (indeksi), jonka avulla tieto löydetään.

Tässä yhteydessä käsitellään vain taulukko (engl. array), joka on erittäin paljon käytetty tietorakenne.

Taulukon perustamisessa (luomisessa) tarvitaan aina avainsanoja new Array(). Tämä tarkoittaa sitä, että taulukko on uusi olio luokasta Array. Sanotaan myös, että luotu olio on luokan Array ilmentymä.

Koodi alla luo uuden nimet-taulukon, jonne lisätään kolme nimeä.

<script type="text/javascript"> /* Esitellään muuttuja "nimet", jonka arvoksi annetaan * uusi (tyhjä)taulukko.*/ var nimet = new Array(); /* Lisätään taulukkoon "Heikki" ja muut.*/ nimet.push("Heikki"); nimet.push("Kalle"); nimet.push("Ville"); </script>

Taulukon sisällön voi määritellä myös kerralla kuten alla. Tuloksena on saman taulukko.

<script type="text/javascript"> /* Tapa 2: Esitellään muuttuja "nimet", jonka arvoksi annetaan * uusi taulukko, jossa on tutut kolme nimeä.*/ var nimet = new Array("Heikki","Kalle","Ville"); </script>

Taulukossa nimet on nyt kolme alkiota. Alkioita eli tässä tapauksessa nimiä voidaan kutsua ja muuttaa alkion järjestysluvun avulla. Luvut alkavat nollasta, joten esimerkiksi alkio nimet[0] vastaa "Heikkiä", nimet[1] "Kallea" ja nimet[2] Villeä. Jos indeksi on isompi kuin 2, on tuloksena virhetoiminto ja ohjelma pysähtyy siihen.

Alla on koodinpätkä, joka tulostaa nimet allekkain. Huomaa toistolauseen käyttö. Jos alkioita on vaikka 1000, helpottaa toistolause aika paljon. Taulukon alkioiden määrän kertoo nimet.length.

var teksti = ""; /* Toistolause muuttaa vain indeksiä, * jolloin kaikki alkiot käydään läpi. * Taulukon alkioiden määrä on nimet.length*/ for(i = 0; i < nimet.length; i++) { teksti += nimet[i]+"<br />"; } document.write(teksti);

JavaScriptissa on taulukon alkioiden tulostamiseen myös alla esitelty valmis toiminto. Tällöin alkiot tulostuvat aina peräkkäin pilkulla erotettuna.

document.write(nimet);

Muutamia Array-luokan sisältämiä valmiita metodeita (funktioita):

MetodiKäyttöesimerkkiSelitys
push() nimet.push("Veijo") Lisää yhden tai useamman alkion taulukon loppuun ja palauttaa taulukon uuden koon (alkioiden lkm).
sort() nimet.sort() Järjestää taulukon alkiot aakkosjärjestykseen.
pop() nimet.pop() Palauttaa taulukon viimeisen alkion ja poistaa sen samalla taulukosta.
shift() nimet.shift() Palauttaa taulukon ensimmäisen alkion ja poistaa sen samalla taulukosta.