Nico: 2 dimensionales Objekt

Hi,

habe ein Objekt-Objekt, also z.B. mit Werten wie:
arrobjectsdata['abc']['def']='xyz';
Nun wollte ich mir eine Ausgabe des 2dimensionalen Objekts schreiben, aber irgendwie passiert nicht das, was ich gerne hätte, sondern es werden Funktionen uvm. am Ende in src landen :(

  var src='';  
  for(var oname in arrobjectsdata)  
  {  
   arrdata=arrobjectsdata[oname];  
   for(var dname in arrdata)  
   {  
    v=arrdata[dname];  
    src+='arrdata['+oname+']['+v+'['+v+"\n";  
   }  
  }  

Wo ist der Hund drin?

Thx

  1. Lieber Nico,

    ich denke, das sollte so aussehen:

      var src = '';  
      for(var oname in arrobjectsdata)  
      {  
       arrdata=arrobjectsdata[oname];  
       for(var dname in arrdata)  
       {  
        src += 'arrobjectsdata['+oname+']['+dname+'] = "' + arrdata[dname] + '"\n';  
       }  
      }
    

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hallo,

    Nun wollte ich mir eine Ausgabe des 2dimensionalen Objekts schreiben, aber irgendwie passiert nicht das, was ich gerne hätte, sondern es werden Funktionen uvm. am Ende in src landen :(

    Wie meinst du das?
    Wenn in deinem Objekt Funktionen gespeichert sind, dann tauchen sie auch beim Durchlaufen mit for-in auf.

    Es tauchen auch solche Funktionen auf, die dem Objekt über prototypische Erweiterung verpasst wurden (verschiedene JavaScript-Frameworks erweitern Array- oder sogar alle Objekte).
    Diese prototypisch vererbten Methoden kannst du herausfiltern, indem du prüfst, ob es sich um eine eigene, nicht vererbte Eigenschaft handelt. Dafür gibt es die Methide hasOwnProperty.

    for (var property in object) {  
       if object.hasOwnProperty(property) {  
          alert("Das Objekt hat die Eigenschaft selbst, sie ist nicht vererbt.");  
       }  
    }
    

    Mathias

  3. Heho,

      for(var oname in arr)  
      {  
       arrdata=arr[oname];  
       if(arr.hasOwnProperty(oname))  
       {  
        for(var dname in arrdata)  
        {  
         if(arrdata.hasOwnProperty(dname))  
         {  
          src += 'arrobjectsdata['+escape(oname)+']['+escape(dname)+']='+escape(arrdata[dname])+'\n';  
         }  
        }  
       }  
      }  
    
    

    Schönen Abend noch