无法访问对象内的对象(for for循环)

时间:2017-07-23 16:59:16

标签: javascript object for-loop reference javascript-objects

基本上,我正在尝试创建一个for循环,它创建一个包含每个糖果名称和价格的对象。我可以使用此

访问库存一天,没有任何问题
console.log(store3[4]['inventory sold'])

{ 'Dark Chocolate Crunchies': { cost: 4.29, quantity: 2 },
  'Mint Wafers': { cost: 1.09, quantity: 1 },
  'Peppermint Poppers': { cost: 2.38, quantity: 0 },
  'Peanut Butter Buttered Peanuts': { cost: 1.79, quantity: 2 },
  'Berry Bites': { cost: 7.89, quantity: 5 },
  'Caramel Twists': { cost: 0.5, quantity: 7 },
  'Banana Bunches': { cost: 4.53, quantity: 2 } }

以及

console.log(store3[4]['inventory sold']['Mint Wafers'])

{ cost: 1.09, quantity: 1 }

但是,对于for循环,我需要使用数值,并且由于某种原因,当我尝试以此格式运行previous命令时,我得到了未定义。有什么建议吗?

console.log(store3[4]['inventory sold'][1])

undefined

1 个答案:

答案 0 :(得分:2)

你可以使用Object.keys来获取一个键数组,然后你就可以在这个数组上获得每个属性,并且你将能够访问对象的每个属性。



var datas = { 
  'Dark Chocolate Crunchies': { cost: 4.29, quantity: 2 },
  'Mint Wafers': { cost: 1.09, quantity: 1 },
  'Peppermint Poppers': { cost: 2.38, quantity: 0 },
  'Peanut Butter Buttered Peanuts': { cost: 1.79, quantity: 2 },
  'Berry Bites': { cost: 7.89, quantity: 5 },
  'Caramel Twists': { cost: 0.5, quantity: 7 },
  'Banana Bunches': { cost: 4.53, quantity: 2 }
}


Object.keys(datas).forEach(function (key) {
  console.log(key) ;
  console.log('cost',datas[key]['cost']) ;
  console.log('quantity',datas[key]['quantity']) ;
}) ;