[JS] Multi Array durchlaufen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JS] Multi Array durchlaufen

    Hallo,

    ich möchte folgendes Object mittels einer "for" Anweisung durchlaufen und dabei alle Werte ausgeben.

    PHP-Code:
    var dataInfos  =  {"20070414" : {"1":{"eventname":"123","description":"123","link":"123"}},
    "20070419":{"1" :{ "eventname":"123" "description":"123","link":"123"}, 
    "2" :{ "eventname":"123","description":"123","link":"123"}}
    }


    alert(dataInfos); // gibt [object Object] aus 

    for (var ymd 0ymd dataInfos.lengthymd++) 
    {
       
    alert(dataInfos[ymd]); // undefined oO
       
    for (var Eventid in dataInfos[ymd]) 
       {
          for (var 
    Item in dataInfos[ymd][Eventid]) 
         {
         
    alert(dataInfos[ymd][Eventid][Item]); // nix 
         
    }
      }

    Warum wird nichts angezeigt, die Daten sind doch eigentlich da.
    Muß man erst die Arraystruktur aufbauen?

    Grüße vain
    Zuletzt geändert von vain; 06.05.2007, 13:55.

  • #2
    Re: [JS] Multi Array durchlaufen

    dataInfos ist kein Array. (Es gibt in Javascript keine assoziativen Arrays.)
    Es hat keine length-Eigenschaft - also kannst du die for-Schleife vergessen.
    Es enthält auch keine "Elemente", auf die Index-basiert zugegriffen werden könnte.

    Du kannst lediglich jede Ebene per for-in durchlaufen.

    Code:
    var dataInfos  =  {"20070414" : {"1":{"eventname":"e123","description":"d123","link":"l123"}},
    "20070419":{"1" :{ "eventname":"e124" , "description":"d124","link":"l124"}, 
    "2" :{ "eventname":"e125","description":"d125","link":"l125"}}
    };
    var o="";
    for(eventDatum in dataInfos) {
    	o+=eventDatum+"\n";
    	for(eventNummer in dataInfos[eventDatum]) {
    		o+=eventNummer+"\n";
    		for(eigenschaft in dataInfos[eventDatum][eventNummer]) {
    			o+=eigenschaft+": "+dataInfos[eventDatum][eventNummer][eigenschaft]+"\n";
    		}
    		o+="\n";
    	}
    }
    alert(o);
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      That did the trick!

      "Jede Object-Ebene wird per for-in durchlaufen."
      Das hat Merksatz-Qualität.

      Kommentar

      Lädt...
      X