是否可以使用for循环遍历对象内的对象?

时间:2017-05-10 15:26:54

标签: javascript

我正在尝试遍历我的一个对象并获取该对象内的对象。

在此示例中,我尝试遍历items中的orderCart以获取qtyprice

{ _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@gmail.com',
   orderFullName: 'John Doe'
}

是否可以使用for循环/ forEach执行此操作,还是有其他方法可以执行此操作?

2 个答案:

答案 0 :(得分:0)

您可以使用for...in,也可以迭代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@gmail.com',
  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);
});




答案 1 :(得分:-1)

您可以使用Object.keys(items)获取对象的键数组。然后你可以遍历这个键数组,并使用它们来查看每个键/值对,并查看数量和价格。