A JavaScriptben a többdimenziós tömbök tömbök tömbjei. Például egy kétdimenziós tömb elemének eléréséhez kétszer kell megadni az operátort.
Tegyük fel, hogy a változó mátrix egész számok tömbje. A mátrix[j] mindegyik eleme számokból álló tömb. Egyetlen számra való hivatkozáshoz a mátrix[j][k] jelölést használjuk.
Példa. Kétdimenziós tömböt használunk a szorzótábla létrehozásához.
var mátrix = new Array(10); // 10 sor van a mátrixban
for(var j = 0; j< matrix.length; j++)
mátrix[j] = új tömb(10); //d minden sor 10 oszlopot hozott létre
for(var row = 0; sor< matrix.length; row++) {
for(col = 0; col< matrix .length; col++) {
mátrix = sor*oszlop; // tömbelemek kitöltése
var eredmény = mátrix ; // szorzás eredménye 24
A JavaScript kétdimenziós tömbjének tipikus használata egyéni menüopciók tömbjének létrehozása. Tegyük fel, hogy néhány főmenü opció megfelel a legördülő almenü opcióinak. Hozzunk létre egy tömböt, amelynek hossza megfelel a főmenü opcióinak számának. Ennek a tömbnek az elemei a megfelelő almenük opcióneveinek tömbjei lesznek.
menü = new Array();
menü = new Array ("Option 1.1", "Option 1.2", "Option 1.3");
menü = new Array ("Option 2.1", "Option 2 . 2");
menü = new Array("Opció 3.1", "Opció 3.2", "Opció 3.3", "Opció 3.4");
A 2. almenü 1. opciójának eléréséhez a következőket kell írnia:
menü // értéke "Opció 2.1";
Változtassuk meg a tömb felépítését úgy, hogy az tartalmazza a főmenü opciók és az almenü opciók nevét is:
menü = new Array()
menü = new Array("Menü1", "Menü2", "Menü3");
menü = new Array();
menü = new Array("Opció 1.1", "Opció 1.2", "Opció 1.3");
menü = new Array ("Option 2.1", "Option 2. 2");
menü = new Array ("Option 3.1", "Option 3.2", "Option 3.3", "Option 3.4");
menü // értéke "Menu2"
menü // értéke "Menu3"
menü // értéke "Option 2.1"
menü // értéke " Option 3.2 "
Array Methods
NÁL NÉL ez a szekció Nézzük meg azokat a módszereket, amelyekkel manipulálhatjuk a tömbök elemeit.
join() - olyan metódus, amely a tömb minden elemét stringgé alakítja és összefűzi. A metódus argumentumaként megadhat egy opcionális karakterláncot, amely az egyes elemek elválasztására szolgál a teljes karakterláncban. Ha nem ad meg határolót, akkor a rendszer alapértelmezés szerint vesszőt használ az elválasztáshoz.
var arr = ; // adott egy három elemből álló tömb
varstr = arr.join(); // str értéke "12,23,38"
str = arr.join("; "); // str == "12; 23; 38"
Ahogy korábban megjegyeztük, az Array.join() metódus a String.split() metódus fordítottja, amely a karakterláncokat tömbelemekre bontja.
fordított() - olyan módszer, amely megfordítja az elemek sorrendjét egy tömbben. Ez a módszer nem hoz létre új tömböt, hanem megváltoztatja a sorrendjüket az eredeti tömbben.
var arr = new Tömb(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"
sort() - egy metódus, amely egy tömb elemeit a helyükre rendezi, és a rendezett tömböt adja vissza. Ha a sort() metódus argumentumok nélkül kerül meghívásra, akkor a tömb elemeit ábécé sorrendben rendezi, és szükség esetén átmenetileg karakterlánc-értékekké alakítja át őket, hogy elvégezze az összehasonlítást.
var arr = new Array("banán", "sherry", "alma");
varstr = arr.join(", "); // str == "alma, banán, cseresznye"
Ha van egy meghatározatlan elem a tömbben, akkor az átkerül a tömb végére.
Annak érdekében, hogy ne ábécé sorrendben, hanem más módon rendezhessünk, az összehasonlító függvényt argumentumként átadjuk a sort () metódusnak, melynek feladata, hogy jelezze azt a szabályt, amely szerint két argumentuma közül az egyik elhelyezkedik. korábban a rendezett listában. Ha a másodikat meg kell előznie az első argumentumnak, az összehasonlító függvénynek negatív értéket kell visszaadnia. Ha egy rendezett tömbben az első argumentumnak a másodikat kell követnie, akkor a függvénynek pozitív számot kell visszaadnia. Az összehasonlító függvénynek 0-t kell visszaadnia, ha a két érték ekvivalens, azaz a sorrend nem fontos. Példa.
Rendezzük számsorrendbe.
var arr = ;
arr.sort(); // ábécé sorrendben: 11111, 2222, 333, 44
arr.sort(function(first,second) ( //
visszatérés első - második; )); // Számsorrend: 44, 333, 2222, 11111
Kényelmes ebben a kódrészletben literális függvényt használni, mert az összehasonlító függvényt egyszer hívják meg, és nem kell nevet adni neki.
Egyéb rendezési funkciók meghatározásával sokféle rendezési módszert valósíthat meg.
concate() - olyan metódus, amely egy új tömböt hoz létre és ad vissza, amely tartalmazza az eredeti tömb elemeit, kiegészítve a concat() metódusban megadott összes argumentum értékével. Abban az esetben, ha maga az argumentum egy tömb, az elemei hozzáadódnak a végső tömbhöz. Meg kell azonban jegyezni, hogy a tömbök és a tömbök szétválasztásakor nem történik rekurzió.
var arr = ;
arr.concat(4, 5) // eredmény
arr. concat(); // eredmény
arr. concat (,) // eredmény
arr. concat (4, ]) // eredmény ]
szelet() - olyan metódus, amely az eredeti tömb egy altömbjét (töredékét) adja vissza. A metódusnak két argumentuma van, amelyek a visszaadott altömb elejét és végét jelzik. A visszaadott tömb tartalmazni fogja az elemeket attól az elemtől kezdve, amelynek indexét az első argumentum határozza meg, egészen addig az elemig, amelynek számát a második argumentum határozza meg, de nem tartalmazza.
Ha egyetlen argumentumot ad meg, akkor a visszaadott tömb az argumentum által megadott pozíciótól a tömb végéig tartalmazza az elemeket. A negatív argumentum a tömb végétől számítva adja meg a tömbelem számát.
var arr = ;
arr.slice(0,3); // Visszatérés
arr. szelet (3); // Visszatérés
arr. szelet(1,-1); // Visszatérés
arr. szelet(-3,-2); // Visszatérés
splice()- egy általános módszer, amely egy tömb elemeinek hozzáadására és eltávolítására, vagy mindkét műveletre egyszerre használható. A metódus művelet eredményeként az eredeti tömb megváltozik.
A splice() metódusban az első argumentum annak a tömbnek az indexét adja meg, amelyből a törlés és/vagy beillesztés indul, a második argumentum pedig az eltávolítandó elemek számát adja meg. Ha elhagyja a második argumentumot, akkor a tömb elemei a metódus első argumentumában megadott pozíciótól kezdve a tömb végéig törlődnek. A splice() metódussal tér vissza eltávolított elemek tömbje. Ha a második argumentum 0, a metódus üres tömböt ad vissza.
var arr = ;
arr.splice(4); // visszatér ; arr egyenlővé válik
arr.splice(1,2); // visszatér ; arr egyenlővé válik
A splice() metódus két argumentumát, amelyek a tömb eltávolítandó elemeit határozzák meg, követheti bármilyen szám további argumentumok, amelyek meghatározzák a tömbbe beillesztendő elemeket, a metódus első argumentuma által megadott indextől kezdve.
var arr = ;
arr.splice(2,0"ab","cd"); /* vissza fog térni ; arr lesz */
arr.splice(2,2,,3); /* visszaadja ["ab","cd"]; az arr lesz ,3,33,44,55] */
Figyelembe kell venni, hogy a splice() metódus nem osztja fel a tömb argumentumát külön beszúrt elemekre, hanem magát a tömböt szúrja be.
push() és pop() - metódusok, amelyek lehetővé teszik a tömbök veremként való használatát. A push() metódus új elemeket ad a tömb végéhez, és visszaadja a tömb új hosszát. A pop() metódus eltávolítja a tömb utolsó elemét, és eredményként az eltávolított értéket adja vissza.
Mindkét módszer módosítja az eredeti tömböt. Ha a push() és pop() metódusok kombinációját használja a JavaScriptben a kódban, akkor egy tömb segítségével létrehozhat egy veremet egy first-in, last-out szolgáltatásszabállyal.
var verem = ; // üres verem
verem.push(1,2); // tömb: 2-t ad vissza
Kazal. pop(); // tömb: 2-t ad vissza
verem.push(3); // tömb: 2-t ad vissza
stack.pop(); // tömb: 3-at ad vissza
stack.push(); // tömb: ] 2-t ad vissza
Kazal. pop() // array: visszatér
Kazal. pop(); // tömb: 1-et ad vissza
unshift() és shift() - metódusok, amelyek szinte ugyanúgy működnek, mint a push() és a pop(), de nem a tömb végére, hanem az elejére szúrnak be és távolítanak el elemeket.
Az unshift() metódus hozzáad egy vagy több elemet a tömb elejéhez, eltolja az elemeket a tömb végére, és visszaadja a tömb új hosszát. A shift() metódus a tömb első elemének eltávolítására szolgál, és az eltávolított elemet adja vissza.
var arr = ; // arr:
arr.unshift(1); // arr: 1-et fog visszaadni
arr.unshift(22); // arr: visszatér 2
arr.shift(); // arr: 22-én tér vissza
arr.unshift(3,); // arr:,1] 3-at ad vissza
arr.shift(); // arr:[,1] 3-at ad vissza
arr.shift(); // arr: visszatér
arr.shift(); // arr: 1-et fog visszaadni
Ha az unshift() metódust több argumentummal hívjuk meg, akkor ezek az argumentumok egyszerre kerülnek beillesztésre, nem pedig egyenként, ahogy az a splice() metódusnál történik. Vagyis a végső tömbben az értékek ugyanabban a sorrendben lesznek elrendezve, mint ahogy az argumentumlistában szerepeltek a metódus meghívásakor.
toString() és toLocaleString()- olyan módszerek, amelyek a tömb minden elemét karakterláncokká alakítják, és megjelenítik a kapott karakterláncok listáját vesszővel elválasztva. A toString() metódus, mint már említettük, a JavaScript bármely objektumához elérhető, beleértve a tömböket is. Felhívjuk figyelmét, hogy a metódusok működése következtében a tömbértékek körül sem szögletes zárójel, sem egyéb határoló nem marad.
A ToString() // az "1,2,3" értéket adja vissza
["a", "b", "c"].toString() // az "a,b,c" értéket adja vissza
].toString() // az "1,2,s" értéket adja vissza
A toString() metódus ugyanazt a karakterláncot adja vissza, mint a join() metódus, ha paraméterek nélkül hívják meg.
A toLocaleString() egy olyan metódus, amelyben az eredményül kapott karakterláncokat egy régióspecifikus elválasztó segítségével összefűzzük.
Példa 1. Ciklikus banner készítése (diavetítés).
Hozzunk létre egy tömböt a képekből, amelyek bizonyos időközönként megjelennek az oldalon.
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);