2017-02-16 4 views
-1

Ich verstehe natürlich nicht, wie forEach in JavaScript funktioniert, denn wenn ich den folgenden Code ausführen, bekomme ich überhaupt keine Ausgabe. Was verstehe ich falsch oder falsch? Vielen Dank!Keine Ausgabe mit JavaScript forEach

var id = []; 
id['battery'] = []; 
id['battery']['garage'] = 27; 
id['battery']['attic'] = 88; 
id['battery']['basement'] = 74; 
id['battery']['office'] = 62; 
id['battery']['hallway'] = 84; 

id['battery'].forEach(function(value, room) { 
    console.log("value = " + value + " | room = " + room); 
}); 
+1

'forEach' iteriert nur über die Schlüssel des Arrays, die positive ganze Zahlen sind. – 4castle

+0

JavaScript hat keine assoziativen Arrays; '.forEach()' durchläuft nur integer-indexierte Eigenschaften. – Pointy

+0

Mögliches Duplikat von [Durch Objekteigenschaften iterieren] (http://stackoverflow.com/questions/8312459/iterate-through-object-properties) – 4castle

Antwort

2

Sie können forEach nicht mit Objekten verwenden. Aber Sie können dies tun:

var id = { 
    battery: { 
    garage: 27, 
    attic: 88, 
    basement: 74, 
    office: 62, 
    hallway: 84 
    } 
}; 

for(var room in id.battery) { 
    console.log("value = " + id.battery[room] + " | room = " + room); 
}; 
+1

In diesem Fall sollte auch eine if-Anweisung 'if (id.battery.hasOwnProperty (Zimmer)) ' – piotrbienias