2017-05-10 4 views
0

Ich versuche, eines meiner Objekte zu durchlaufen und die Objekte innerhalb dieses Objekts zu bekommen.Ist es möglich, Objekte innerhalb eines Objekts mit for-Schleifen zu durchlaufen?

In diesem Beispiel, ich versuche, durch die items in den orderCart Schleife die qty und price

{ _id: 591327ea6325162512438858, 
    orderCart: 
    { totalPrice: 66.95, 
    totalQty: 5, 
    items: 
     { '5900e2e1e2e75276ca68e10c': { item: [Object], qty: 2, price: 25.98 }, 
     '5900d8fde2e75276ca68e107': { item: [Object], qty: 2, price: 25.98 }, 
     '58fff1d322f00e71fdbfe422': { item: [Object], qty: 2, price: 25.98 } 
     } 
    }, 
    orderEmail: '[email protected]', 
    orderFullName: 'John Doe' 
} 

Ist es möglich, dies zu tun, mit einem for-Schleife/forEach zu bekommen oder gibt es eine andere Art und Weise das zu tun?

Antwort

0

können Sie for...in oder Sie können iterieren Object.keys()

var myObj = { 
 
    _id: "591327ea6325162512438858", 
 
    orderCart: { 
 
    totalPrice: 66.95, 
 
    totalQty: 5, 
 
    items: { 
 
     '5900e2e1e2e75276ca68e10c': { 
 
     item: [Object], 
 
     qty: 2, 
 
     price: 25.98 
 
     }, 
 
     '5900d8fde2e75276ca68e107': { 
 
     item: [Object], 
 
     qty: 2, 
 
     price: 25.98 
 
     }, 
 
     '58fff1d322f00e71fdbfe422': { 
 
     item: [Object], 
 
     qty: 2, 
 
     price: 25.98 
 
     } 
 
    } 
 
    }, 
 
    orderEmail: '[email protected]', 
 
    orderFullName: 'John Doe' 
 
}; 
 

 
console.log("---- for...in ----"); 
 
for (var key in myObj.orderCart.items) { 
 
    if (myObj.orderCart.items.hasOwnProperty(key)) { 
 
    var obj = myObj.orderCart.items[key]; 
 
    console.log(obj.qty, obj.price); 
 
    } 
 
} 
 
console.log("---- Object.keys() ----"); 
 
Object.keys(myObj.orderCart.items).forEach(function(key) { 
 
    var obj = myObj.orderCart.items[key]; 
 
    console.log(obj.qty, obj.price); 
 
});

+0

Das funktioniert perfekt. Das wird mir eine Menge Code und Schleifen ersparen. –

+0

@MatthewMurphy Großartig =) Froh, es funktioniert für Sie. – mhodges

+0

Beachten Sie, dass 'for..in' auch alle Eigenschaften iteriert, die das Objekt über die Prototypkette geerbt hat. Aus diesem Grund wird davon abgeraten, etwas mit 'Object.prototype' zu ​​tun, aber aufgrund der Möglichkeit, dass jemand das getan hat, ist es eine gute Idee, mit 'obj.hasOwnProperty (key)' zu überprüfen, wenn ein Objekt mit 'for..in' iteriert wird ' –

-1

Sie können ein Array der Schlüssel des Objekts mit Object.keys (Artikel) erhalten. Dann können Sie diese Anordnung von Schlüsseln durchlaufen und sie verwenden, um jedes Schlüssel/Wert-Paar zu betrachten und Menge und Preis auszuprobieren.

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in –

Verwandte Themen