Pole – Objekt Array
Na ukladanie dát možeme použiť okrem premennej aj pole. Na rozdiel od jednoduchej premennej do ktorej je možné vložiť jednu hodnotu do poľa ich ich možme vložiť niekoľko. Na sprístupnenie hodnoty okrem mena pola zadáme aj index hodnoty – na ktorom mieste v poli sa daná hodnota nachádza. Implicitne index poľa začína 0. Pole(array) je typu objekt. Na jeho vytvorenie použijeme kľučové slovo new.
Syntax vytvorenia poľa:
var pole1 = new Array(); //vytvorí pole s vopred neurčeným počtom prvkov
var pole2 = new Array(6); //vytvorí pole o veľkosti 6 prvkov
Inicializácia poľa: Pole inicializujeme zadaním prvkov.
Príklad:
pole1[0]=položka0;
pole1[1]=položka1;
pole1[2]=položka2;
alebo
var pole1 = new Array(položka0, položka1 , položka2);
a potom k prvkom pristupujeme:
alert(pole1[1]); //vypíše nám hodnotu na druhom mieste v poli pole1
Namiesto čísel možeme použiť nejaký reťazec a potom pomocou tohto reťazca pristupovať k záznamu.
Priklad:
pole1["retazec0"]=položka0;
pole1["retazec1"]=položka1;
pole1["retazec2"]=položka2;
možeme použiť aj takýto zápis:
pole1.retazec0 = položka0;
k prvku pristupujeme:
alert(pole1["retazec0"]);
Dvojrozmerné pole: Viacrozmerné pole vytvoríme tak, že do jednotlivých prvok poľa nevložíme hodnotu, ale ďalšie pole.
Príklad:
pole1[0] = new Array(2);
pole1[1] = new Array(2);
pole1[2] = new Array(2);
// vytvorili sme si pole veľkosti 3×2
// k tomuto poľu pristupujeme takto:
pole1[0][1] = “auto”;
Vlastnosti
| Vlastnosť | Popis |
|---|---|
| length | - určuje veľkosť poľa, nie počet prvkov poľa |
Metódy
| Metódy | Popis | Syntax: |
|---|---|---|
| concat() | - spája dve polia do jedného | spojenePole = pole1.concat(pole2); |
| join() | - vráti reťazec, ktorý obsahuje všetky prvky poľaoddelené zadaným znakom | vysledok = pole1.join(znak); //ako znak môžme použiť akýkoľvek znak v úvodzovkách (napr.: “,”) |
| pop() | - vráti posledný prvok z poľa a zároveň odstráni tento prvok z poľa | prvok = pole1.pop(); |
| push() | - pripojí na koniec poľa prvok(alebo prvky) dodaný ako parameter a vráti novú dĺžku poľa | novaDlzka = pole1.push(prvok1 [, prvok2, ...]); |
| reverse() | - táto metóda vráti pole, ktoré bude mať prvky usporiadané v opačnom poradí | pole2 = pole1.reverse(); |
| shift() | - vráti prvý prvok z poľa a zároveň ho z poľa odstráni, všetky prvky sa tak posunú o jednu pozíciu doľava | prvok = pole1.shift(); |
| slice() | - vráti časť poľa určenú začiatočným a koncovým indexom dodaným ako prametre | castPola = pole1(zaciatok, koniec); // za zaciatok a koniec dosadime dve cisla, zaciatok < koniec |
| sort() | - zotriedi pole podľa abecedy, ak dodáme metóde aj nepovinný parameter triediacaFunkcia, bude sort triediť prvky poľa pomocou danej funkcie. Obmedzenie na triediacuFunkciu je také, musí vrátiť zápornú, 0 alebo kladnú hodnotu podľa toho, či je prvý z dvoch aktuálne porovnávaných prvok menší, rovný alebo väčší ako druhý prvok | zotriedenePole = pole1.sort(); |
| splice() | - podobne ako slice, prvý parameter určuje začiatok výberu, druhý parameter určuje počet vyberaných prvkov a môžu nasledovať ešte nepovinné parametre, ktorými budú prvky, ktorými sa nahradia vybrané prvky. Vracia pole zložené z vybraných prvkov | vybranePrvky = pole1.splice(zaciatok, pocet [, prvok1, ...]); |
| toString() | - vracia pole vo forme reťazca | retazec = pole1.toString(); |
| unshift() | - vkladá prvky zadané ako parametre na začiatok poľa a vráti dĺžku nového poľa | novaDlzka = pole1.unshift(prvok1 [, prvok2, ...]); |
Teraz nasleduje troška komplexnejší príklad na niektoré spomenuté metódy a vlastnosti objektu Array
Príklad:
<head>
<title>Skúška poľa</title>
<script language=”javascript” type=”text/javascript”>
var pole = new Array(“Martin”,”Vladko”, “Ivka”,”Jožko”,”Dušan”, “Andrea”);
var dlzkaPola = pole.length;
var novaDlzka = pole.push(“Kamil”);
var castPola = pole.slice(3,6);
var retazec = pole.toString();
var retazec2 = pole.toLocaleString();
var triedene = pole.sort();
</script>
</head>
<body>
<script language=”javascript” type=”text/javascript”>
document.write(“Dĺžka poľa:<br> ”);
document.write(dlzkaPola);
document.write(“<br>Nová dĺžka po push – na koniec poľa sme pridali meno Kamil:<br> ”);
document.write(novaDlzka+”<br>”);
document.write(“Časť poľa – vybrali sme prvky poľa od indexu 3 po 6:<br> ”);
document.write(castPola.join(“,”));
document.write(“<br>Reťazec z prvkov poľa pomocou metódy toString():<br> ”);
document.write(retazec);
document.write(“<br>Reťazec z prvkov poľa pomocou metódy toLocaleString():<br> ”);
document.write(retazec2);
document.write(“<br>Zotriedené pole podľa abecedy(vypísané pomocou metódy join(\”,\”)):<br> ”);
document.write(triedene.join(“,”));
</script>
</body>
</html>
/* Výsledok bude:
// Dĺžka poľa:
6
Nová dĺžka po push – na koniec poľa sme pridali meno Kamil:
7
Časť poľa – vybrali sme prvky poľa od indexu 3 po 6:
Jožko,Dušan,Andrea
Reťazec z prvkov poľa pomocou metódy toString():
Martin,Vladko,Ivka,Jožko,Dušan,Andrea,Kamil
Reťazec z prvkov poľa pomocou metódy toLocaleString():
Martin,Vladko,Ivka,Jožko,Dušan,Andrea,Kamil
Zotriedené pole podľa abecedy(vypísané pomocou metódy join(“,”)):
Andrea,Dušan,Ivka,Jožko,Kamil,Martin,Vladko
*/