Javascript, Tömbön végig loopolni úgy, hogy nem tudod hány objektuma van és annak hány tömbje?
Sziasztok, a kérdés adott...
Van egy tömböd, abban van 1 vagy 2 vagy 999 objektumod és ezekben az objektumokban is van 1 tömb amiben szintén lehet akár 20-30 objektum is, majd ezekben is lehet 1 tömb stb stb stb....
Gondolkoztam azon, hogy az utolsó objektumra kellene tenni egy flag-et, és így while-al végig menni rajta?
De ezt nem igazán preferálom...
Ötlete?
[Javascript]
Es mit szamit, hogy azokban van meg belul is? Az a ciklus ugyse fog vegig menni bennuk.
Ha minden egyes szinten vegig akarsz menni, akkor rekurzio kulcsszora talalsz megoldasokat, egy bejaro fuggvenyt kell irnod ami ha gyerek van akkor meghivja magat es vegigmegy a gyerekeken.
1) JS-ben az objektumokat lehet tömbként kezelni, vagyis végig lehet menni minden egyes propertyjén.
2) Van nagyon szép typeof operátor, amivel meg tudod nézni, hogy mi az adott property típusa.
3) És még rekurzív függvényeket/eljárásokat is lehet írni.
Első blikkre... lehet rajta finomítani még, szóval rajta.
function Bejar(tomb) {
if (!Array.isArray(tomb)) {
console.log("Ez nem tömb, barátom"); return;
}
console.log("=> " + tomb.length + " elemű tömb bejárása...");
for (i=0; i<tomb.length; i++) {
if (Array.isArray(tomb[i])) {
console.log(i + " = TÖMB, MEGHÍVOM SAJÁT MAGAM");
Bejar(tomb[i], tomb[i]);
} else {
console.log(i + " = " + tomb[i]);
}
}
return tomb;
}
var TesztArray = [
"ezek","nem","tömbök", ["egy","kettő","három",["öccá","ezeöccá","háromszá"],"négy","öt"]
];
Bejar(TesztArray);
Bejar(tomb[i], tomb[i]); duplán van paraméterezve, csak egy paraméter kell neki. Tehát helyesen:
Bejar(tomb[i]);
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!