Dinamikus többdimenziós tömb értékadása jQuery-ben
Sziasztok!
Valószínűleg elméleti hiányosságaim vannak a következő probléma megoldásához, ezért kérném a segítségeteket.
Vannak weboldalon belüli kliens oldali folyamatok, amik többféle, különböző mélységű tömböknek adnak értéket, aszerint, hogy milyen folyamat futott le.
Csakhogy ezek között a tömbök között vannak kétdimenziósak, de vannak ötdimenziósak is. A különböző mélységű indexek majdhogynem véletlenszerűek, nem tudom őket előre deklarálni.
PHP-ban pl. megtudom azt csinálni, hogy:ahol $a, $b, $c, $d aktuális értékeket vesznek fel.
De ugyanezt már nem tudom megadni javascriptben vagy jquery-ben, még globális változóval se:Ugyanis, ha a fenti tömb elemének szeretnék értéket adni, undefined-ot kapok.
Ha:formában deklarálom is, a következő mélység akkor is undefined lesz.
A kérdésem az lenne, hogyan tudnék egy olyan, akár rekurzív függvényt írni, amit ha meghívok, tetszőleges mélységig levizsgálja a tömböt, és ha az adott mélységig nem tömb, deklarálja, és lejjebb megy még egy mélységet.
Pl.:A fenti függvénnyel a $.glob['xyz'] nevű tömb $.glob['xyz'][3][12][0][1] elemének tudnék 'x' értéket adni úgy, hogy ha egy mélység nincs deklarálva, akkor akár rekurzívan deklarálja a függvény, és megadja neki az 'x' értéket.
Köszi előre is!
■ Valószínűleg elméleti hiányosságaim vannak a következő probléma megoldásához, ezért kérném a segítségeteket.
Vannak weboldalon belüli kliens oldali folyamatok, amik többféle, különböző mélységű tömböknek adnak értéket, aszerint, hogy milyen folyamat futott le.
Csakhogy ezek között a tömbök között vannak kétdimenziósak, de vannak ötdimenziósak is. A különböző mélységű indexek majdhogynem véletlenszerűek, nem tudom őket előre deklarálni.
PHP-ban pl. megtudom azt csinálni, hogy:
$arr['xyz'][$a][$b][$c][$d] = 'x';
De ugyanezt már nem tudom megadni javascriptben vagy jquery-ben, még globális változóval se:
$.glob['xyz'][a][b][c][d] = 'x';
Ha:
$.glob['xyz'] = [];
$.glob['xyz'][a] = [];
A kérdésem az lenne, hogyan tudnék egy olyan, akár rekurzív függvényt írni, amit ha meghívok, tetszőleges mélységig levizsgálja a tömböt, és ha az adott mélységig nem tömb, deklarálja, és lejjebb megy még egy mélységet.
Pl.:
var arrName= 'xyz';
var levels = [3,12,0,1];
var value = 'x';
addValue(arrName, levels, value);
function addValue(arrName, levels){
//...
}
Köszi előre is!
arguments
Én mondjuk nem értem, hogy
Pedig leírtam a teljes
(...)
}
Láthatóan nem erre a részére
Ilyen formában nem is kapsz
JavaScriptben nincsenek kulcsos tömbök, a többdimenziós tömb létrehozása ily módon (is) történik:
JavaScriptben nincsenek
A függvényednek végig kell
- megvizsgálnia az aktuális tömbön az adott indexet,
- ha kell, létrehozni az indexen egy tömböt,
- beállítani az indexen található tömböt aktuálisként,
végül az aktuális tömbön az utolsó indexen beállítani az értéket.Hol akadsz el?
paraméter
A fgv. ami végigmegy az általad leirt 3 ponton, paraméteresen hogy megy le 3 szintet?
És ha a következő meghívás egy 6 dimenziós tömböt írna, akkor hogy megyek le paraméteresen 6 mélységig?
for ciklussal vagy
for
ciklussal vagy iterációval. Egyébként ezt a feladatot PHP-ban is ugyanúgy kell megoldani, mint javascriptben.Ahogy Gábor írja, annyiszor
példa
De hogy megyek lejjebb?
Úgy hogy ugyanez a formula, vagy egy ehhez hasonló végig tudjon menni az összes levels tömbben megadott mélységű indexen.
Mert ugye nekem a
Ez talán segít. Úgy nézem
Talán
Parancsolj :).Nem
Nem teszteltem rongyosra, de a példád alapján működik:
pl.:
Működik? Tudok segíteni
Bocsánat, nem tudtam azóta