Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环时从对象获取键值_Javascript_Object_Foreach - Fatal编程技术网

Javascript 循环时从对象获取键值

Javascript 循环时从对象获取键值,javascript,object,foreach,Javascript,Object,Foreach,我无法从该对象获取每个人的高度值: [object Object] { Adam: [object Object] { height: 192, weight: 101 }, Grant: [object Object] { height: 171, weight: 79 } } 我只是不断地不确定或者打印出名字 const personData = data Object.keys(personData).forEach((person

我无法从该对象获取每个人的高度值:

[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]会给我每个姓名的第一个字母,我的其他尝试会产生未定义的结果


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

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

您需要迭代对象的值,而不是其键,然后再深入一点以提取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]);
})

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

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