2016-04-09 10 views
-2

Ich habe ein Objekt, und ich möchte durchlaufen, um jedes Element abzurufen.Iterieren und extrahieren einzelnes Element in einem Javascript-Objekt

result = {@danby:[{will:2, qwerty:5}]} 

    for (i in result) { 
      for (j in result[i]){ 

      console.log(result[i][j]) 
      } 
     } 

Das gibt mir [Objekt Objekt]. Jede Hilfe bitte

+2

'Hinzufügen {@danby: Wert}' ist ein ungültiger Objektinitialisierer. – Oriol

+0

'console.log (JSON.stringify (Ergebnis [i] [j]))' Mit diesem können Sie wahts im Objekt sehen –

Antwort

0

Sie sollten nicht verwenden for..in für die Iteration von Arrays.

Von MDN

für ... in nicht einen Array iterieren verwendet werden, wo der Index um wichtig ist.

Verwenden Ebene für Schleife

result = { 
 
    '@danby': [{ //⬅️ use quotes here 
 
     will: 2, 
 
     qwerty: 5 
 
    }] 
 
} 
 

 
for (i in result) { 
 
    for (var j = 0; j < result[i].length; j++) { 
 
     document.write(JSON.stringify(result[i][j]));//⬅️ use 'stringify' to output your object 
 
    } 
 
}

0

Wenn Sie nur jedes Element protokollieren wollen, vorausgesetzt, Sie Ihr Objekt beheben, indem Sie Anführungszeichen um diese illegalen Schlüsselnamen setzen, können Sie einfach iterieren über das Array:

result['@danby'].forEach(function (el) { 
    console.log(el); // { will: 2, qwerty: 5 } 
}); 
0

Sie haben ein Objekt innerhalb result[i][j], Wiederholen Sie dieses Objekt also erneut. Working Fiddle

result = { 
 
    '@danby': [{ 
 
    will: 2, 
 
    qwerty: 5 
 
    }] 
 
} 
 

 
for (i in result) { 
 
for (var j = 0; j < result[i].length; j++) { 
 
    for (k in result[i][j]) { 
 
     alert(result[i][j][k]); 
 
    } 
 
    } 
 
}

Auch Ihr Objekt gültig machen, indem ' ' rund um die Immobilie @danby

+1

Sie sollten 'for..in' für Arrays nicht verwenden. – Andy

+0

@Andy aktualisiert meine Antwort, Danke, aber was ist der Grund? –

+1

* for ... in sollte nicht zum Iterieren über ein Array verwendet werden, bei dem die Indexreihenfolge wichtig ist. * – isvforall

Verwandte Themen