V JavaScripte sú viacrozmerné polia poliami polí. Ak chcete získať prístup k prvku, povedzme, dvojrozmerného poľa, musíte operátor zadať dvakrát.
Predpokladajme, že premenná matica je pole polí celých čísel. Každý z prvkov matice[j] je pole čísel. Na označenie jedného čísla používame zápis: matica[j][k].
Príklad. Na vytvorenie tabuľky násobenia používame dvojrozmerné pole.
var matrix = new Array(10); // v matici je 10 riadkov
for(var j = 0; j< matrix.length; j++)
matica[j] = new Array(10); //d každý riadok vytvoril 10 stĺpcov
for(var riadok = 0; riadok< matrix.length; row++) {
for(col = 0; col< matrix .length; col++) {
matica = riadok*stĺpec; // vyplnenie prvkov poľa
var vysledok = matica ; // výsledok násobenia 24
Typickým použitím dvojrozmerného poľa v JavaScripte je vytvorenie radu vlastných možností ponuky. Povedzme, že niektoré možnosti hlavnej ponuky zodpovedajú možnostiam rozbaľovacej podponuky. Vytvorme pole, ktorého dĺžka zodpovedá počtu možností hlavného menu. Prvky tohto poľa budú polia názvov možností ich príslušných podmenu.
menu = new Array();
menu = nové pole ("Možnosť 1.1", "Možnosť 1.2", ", "Možnosť 1.3");
menu = nové pole ("Možnosť 2.1", "Možnosť 2 . 2");
menu = new Array("Možnosť 3.1", "Možnosť 3.2", "Možnosť 3.3", "Možnosť 3.4");
Pre prístup k 1. možnosti 2. podmenu musíte napísať:
menu // hodnota je "Možnosť 2.1";
Zmeňme konštrukciu poľa tak, aby obsahovalo názvy možností hlavnej ponuky aj možnosti podponuky:
menu = new Array()
menu = new Array("Menu1", "Menu2", "Menu3");
menu = new Array();
menu = new Array("Možnosť 1.1", "Možnosť 1.2", "Možnosť 1.3");
menu = nové pole ("Možnosť 2.1", "Možnosť 2. 2");
menu = nové pole ("Možnosť 3.1", "Možnosť 3.2", "Možnosť 3.3", "Možnosť 3.4");
menu // hodnota je "Menu2"
menu // hodnota je "Menu3"
menu // hodnota je "Možnosť 2.1"
menu // hodnota je "Možnosť 3.2"
Array Methods
AT túto sekciu Pozrime sa na metódy, pomocou ktorých môžete manipulovať s prvkami polí.
pripojiť sa () - metóda, ktorá konvertuje každý z prvkov poľa na reťazec a spája ich. Ako argument metódy môžete zadať voliteľný reťazec určený na oddelenie jednotlivých prvkov v celkovom reťazci. Ak nezadáte oddeľovač, štandardne sa na oddeľovanie použije čiarka.
var arr = ; // dané pole troch prvkov
varstr = arr.join(); // hodnota str je "12,23,38"
str = arr.join("; "); // str == "12; 23; 38"
Ako sme už uviedli, metóda Array.join() je opakom metódy String.split(), ktorá rozdeľuje reťazce na prvky poľa.
spätne () - metóda, ktorá obráti poradie prvkov v poli. Táto metóda nevytvorí nové pole, ale zmení ich poradie v pôvodnom poli.
var arr = new Array(1,2,3); // arr = 1, arr = 2, arr = 3
arr.reverse(); // arr = 3, arr = 2, arr = 1
var str = arr.join(); // str == "3,2,1"
zoradiť () - metóda, ktorá triedi prvky poľa na mieste a vracia zoradené pole. Ak sa metóda sort() zavolá bez argumentov, zoradí prvky poľa abecedne a dočasne ich skonvertuje na hodnoty reťazca, aby sa v prípade potreby vykonalo porovnanie.
var arr = new Array("banana", "sherry", "jablko");
varstr = arr.join(", "); // str == "jablko, banán, čerešňa"
Ak je v poli nedefinovaný prvok, presunie sa na koniec poľa.
Aby bolo možné triediť nie v abecednom poradí, ale nejakým iným spôsobom, porovnávacia funkcia sa odovzdáva metóde sort () ako argument, ktorej úlohou je uviesť pravidlo, podľa ktorého bude jeden z jej dvoch argumentov umiestnený skôr. v zoradenom zozname. Ak pred druhým musí byť uvedený prvý argument, porovnávacia funkcia musí vrátiť zápornú hodnotu. Ak v zoradenom poli musí prvý argument nasledovať za druhým, funkcia musí vrátiť kladné číslo. Porovnávacia funkcia by mala vrátiť 0, ak sú tieto dve hodnoty ekvivalentné, t.j. ich poradie nie je dôležité. Príklad.
Zoraďme v číselnom poradí.
var arr = ;
arr.sort(); // v abecednom poradí: 11111, 2222, 333, 44
arr.sort(funkcia(prvá,druhá) ( //
vrátiť prvý - druhý; )); // Číselné poradie: 44, 333, 2222, 11111
V tomto úryvku kódu je vhodné použiť doslovný znak funkcie, pretože porovnávacia funkcia sa zavolá raz a nie je potrebné ju pomenovať.
Definovaním ďalších triediacich funkcií môžete implementovať širokú škálu metód triedenia.
concate() - metóda, ktorá vytvorí a vráti nové pole obsahujúce prvky pôvodného poľa, doplnené o hodnoty všetkých argumentov špecifikovaných v metóde concat(). V prípade, že samotný argument je pole, jeho prvky sa pridajú do konečného poľa. Treba však poznamenať, že pri oddeľovaní polí od polí sa nevykonáva rekurzia.
var arr = ;
arr.concat(4, 5) // výsledok
arr. concat(); // výsledok
arr. concat (,) // výsledok
arr. concat (4, ]) // výsledok ]
plátok() - metóda, ktorá vracia podpole (fragment) pôvodného poľa. Metóda má dva argumenty, ktoré označujú začiatok a koniec vráteného podpola. Vrátené pole bude obsahovať prvky od toho, ktorého index je určený prvým argumentom, až po prvok, ktorého číslo je špecifikované druhým argumentom, ale bez tohto prvku.
Ak zadáte jeden argument, vrátené pole bude obsahovať prvky od pozície určenej argumentom po koniec poľa. Záporný argument určuje číslo prvku poľa od konca poľa.
var arr = ;
arr.slice(0,3); // návrat
arr. plátok (3); // návrat
arr. plátok(1,-1); // návrat
arr. plátok(-3,-2); // návrat
spoj()- všeobecná metóda, ktorú možno použiť na pridávanie a odstraňovanie prvkov poľa alebo na obe operácie súčasne. V dôsledku operácie metódy sa pôvodné pole zmení.
V metóde splice() prvý argument určuje index poľa, z ktorého sa začne mazanie a/alebo vkladanie, druhý argument určuje počet prvkov, ktoré sa majú odstrániť. Ak vynecháte druhý argument, prvky poľa sa vymažú, počnúc od pozície určenej prvým argumentom metódy až po koniec poľa. Vráti metódu splice(). rad odstránených prvkov. Ak je druhý argument 0, metóda vráti prázdne pole.
var arr = ;
arr.splice(4); // vráti ; arr sa rovná
arr.splice(1,2); // vráti ; arr sa rovná
Môžu nasledovať dva argumenty metódy splice(), ktoré špecifikujú prvky poľa, ktoré sa majú odstrániť ľubovoľné čísloďalšie argumenty určujúce prvky, ktoré sa majú vložiť do poľa, počnúc indexom daným prvým argumentom metódy.
var arr = ;
arr.splice(2,0,"ab","cd"); /* vráti sa ; arr sa zmení na */
arr.splice(2,2,,3); /* vráti ["ab","cd"]; arr sa zmení na ,3,33,44,55] */
Mali by ste vziať do úvahy skutočnosť, že metóda splice() nerozdeľuje argumenty poľa na samostatné vložené prvky, ale vkladá pole samotné.
push() a pop() - metódy, ktoré umožňujú použitie polí ako zásobníkov. Metóda push() pridáva nové prvky na koniec poľa a vracia novú dĺžku poľa. Metóda pop() odstráni posledný prvok v poli a ako výsledok vráti odstránenú hodnotu.
Obe metódy upravujú pôvodné pole. Pri použití kombinácie metód push() a pop() v JavaScripte vo svojom kóde môžete použiť pole na vytvorenie zásobníka s pravidlom služby prvý dnu, posledný.
var stack = ; // prázdny zásobník
stack.push(1,2); // pole: vráti 2
stoh. pop(); // pole: vráti 2
stack.push(3); // pole: vráti 2
stack.pop(); // pole: vráti 3
stack.push(); // pole: ] vráti 2
stoh. pop() // pole: vráti
stoh. pop(); // pole: vráti 1
unshift() a shift() - metódy, ktoré fungujú takmer rovnako ako push() a pop(), ale prvky vkladajú a odstraňujú nie na koniec poľa, ale na začiatok.
Metóda unshift() pridá jeden alebo viac prvkov na začiatok poľa, posunie prvky na koniec poľa a vráti novú dĺžku poľa. Metóda shift() sa používa na odstránenie prvého prvku poľa a vráti odstránený prvok.
var arr = ; // arr:
arr.unshift(1); // arr: vráti 1
arr.unshift(22); // arr: vráti 2
arr.shift(); // arr: vráti 22
arr.unshift(3,); // arr:,1] vráti 3
arr.shift(); // arr:[,1] vráti 3
arr.shift(); // arr: vráti sa
arr.shift(); // arr: vráti 1
Pri volaní metódy unshift() s viacerými argumentmi sa tieto argumenty vložia všetky naraz, a nie jeden po druhom, ako sa to stáva v metóde splice(). To znamená, že v konečnom poli budú hodnoty usporiadané v rovnakom poradí, v akom boli zapísané v zozname argumentov pri volaní metódy.
toString() a toLocaleString()- metódy, ktoré konvertujú každý z prvkov poľa na reťazec a zobrazia zoznam prijatých reťazcov oddelených čiarkami. Metóda toString(), ako už bolo uvedené, je dostupná pre akýkoľvek objekt v JavaScripte vrátane poľa. Upozorňujeme, že v dôsledku fungovania metód nezostávajú okolo hodnôt poľa ani hranaté zátvorky ani žiadne iné oddeľovače.
ToString() // vráti "1,2,3"
["a", "b", "c"].toString() // vráti "a,b,c"
].toString() // vráti "1,2,s"
Metóda toString() vráti rovnaký reťazec ako metóda join(), ak je volaná bez parametrov.
toLocaleString() je metóda, pri ktorej sa výsledné reťazce spájajú pomocou oddeľovača špecifického pre oblasť.
Príklad 1. Vytvorenie cyklického bannera (slide show).
Vytvorme pole obrázkov, ktoré sa budú na stránke objavovať v určitých intervaloch.
Slide = new Array("./pic/1.gif", "./pic/2.gif", "./pic/3.gif", "./pic/4.gif", "./pic/5.gif", "./pic/6.gif", "./pic/7.gif","./pic/8.gif", "./pic/9.gif");
//Изображения находятся во вложенной папке pic
k=0; Len=Slide.length;
function rotate(){
if (document.images){
document.banner.src=Slide[k];
setTimeout ("rotate()",1*1000);