【问题标题】:Get key value from an object while looping循环时从对象中获取键值
【发布时间】:2018-08-30 11:05:16
【问题描述】:

我迷失了从这个对象获取每个人的高度值:

[object Object] {
  Adam: [object Object] {
    height: 192,
    weight: 101
  },
  Grant: [object Object] {
    height: 171,
    weight: 79
  }
}

我只是不断得到未定义或打印出名称。

  const personData = data
  Object.keys(personData).forEach((person, index) => {
    console.log(person)
  })

上面将只是控制台记录名称,person[0] 给我每个名称的第一个字母,而我的其他尝试产生未定义。

如何导航到正确的值和键?

【问题讨论】:

    标签: javascript object foreach


    【解决方案1】:

    发生这种情况是因为您正在迭代对象的根。身高、体重等细节存在于更深层次的子对象中。

    您将需要遍历对象的值,而不是其键,然后再深入一点以提取 height 属性:

    Object.values(personData).forEach((person, index) => {
        console.log('Height = '+person.height);
        //if you need to access the person name too...
        console.log('Person = '+Object.keys(personData)[index]);
    })
    

    【讨论】:

      【解决方案2】:

      您正在迭代对象的键。在这种情况下,“亚当”和“格兰特”。你想要做的是使用这些键来访问对象 - 那就是你的人:

      const personData = data
      Object.keys(personData).forEach((name, index) => {
          console.log(personData[name])
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 2020-07-01
        • 2018-09-02
        • 1970-01-01
        • 1970-01-01
        • 2021-01-15
        • 1970-01-01
        相关资源
        最近更新 更多