假设我有这个对象:
const people = {
frodo: { name: 'Frodo', age: 33 },
aragorn: { name: 'Aragorn', age: 87 },
legolas: { name: 'Legolas', age: 2931 }
}
假设我要遍历该对象的属性,如下所示:
for (var person in people) {
console.log(person.name);
}
对于尝试访问的人的任何财产,我都不确定。为什么会发生这种情况?循环该对象的属性并仍然能够访问其自己的属性的正确方法是什么?
答案 0 :(得分:2)
for ... in循环迭代对象的键(属性)。所以
for (var person in people) {
console.log(people[person].name);
}
将为您带来理想的结果。
变量person
将在循环执行期间接收值“ frodo”,“ aragorn”和“ legolas”,这是您的person对象的键(属性)。
答案 1 :(得分:2)
使用for ... in
statement获取对象的键。然后,您需要property accessor作为对象。
const people = {
frodo: { name: 'Frodo', age: 33 },
aragorn: { name: 'Aragorn', age: 87 },
legolas: { name: 'Legolas', age: 2931 }
}
for (var person in people) {
console.log(people[person].name);
}
答案 2 :(得分:1)
您需要查看代码中的person
:
const people = {
frodo: { name: 'Frodo', age: 33 },
aragorn: { name: 'Aragorn', age: 87 },
legolas: { name: 'Legolas', age: 2931 }
}
for(person in people) console.log(person);
它是对象的名称,而不是对象本身。要访问它,您需要指定对象的位置:
const people = {
frodo: { name: 'Frodo', age: 33 },
aragorn: { name: 'Aragorn', age: 87 },
legolas: { name: 'Legolas', age: 2931 }
}
for(person in people) {
console.log( people[person].age, people[person].name, people[person] );
}
答案 3 :(得分:1)
返回对象中的每个键。您可以使用钥匙找人。
const people = {
frodo: { name: 'Frodo', age: 33 },
aragorn: { name: 'Aragorn', age: 87 },
legolas: { name: 'Legolas', age: 2931 }
}
for(var key in people) {
var person = people[key]
console.log(person.name)
}