for .. in循环 - 为什么它有效?

ale*_*mur 6 javascript for-loop

我正在阅读"网页设计师的JavaScript"一书,我来到这个例子:

var fullName = {
  "first": "John",
  "last": "Smith"
};
for (var name in fullName) {
  console.log(name + ": " + fullName[name]);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

"first: John"
"last: Smith"
Run Code Online (Sandbox Code Playgroud)

我没有得到的是:我在哪里告诉程序获取字符串"first"和"last".我的意思是,循环对象"fullName",我没有看到"名称"如何与"第一"和"最后"相关.我希望这很清楚.你能帮我吗?非常感谢!

Mik*_*uck 12

for..in迭代对象的.然后,您可以使用括号按名称访问对象值.

var obj = {
  a: 1,
  b: 2,
  c: 3
};

for (var key in obj) {
  console.log('Key:', key);
  console.log('obj[key] == obj["' + key + '"] == obj.' + key);
  console.log('obj.' + key + ' == ' + obj[key]);
}
Run Code Online (Sandbox Code Playgroud)


Jam*_*mes 6

学习和/或理解起来非常简单.您循环遍历对象中的所有属性fullName.对于每个属性,您将为其提供临时名称/别名name

所以您可以将其更改为for (var anything in fullName)然后在for循环的主体中,您将通过名称引用每个属性,anything如下所示:

for (var anything in fullName) {

    // anything is an alias for the current property your on of the object you're looping through
    console.log(anything + ": " + fullName[anything]);

}
Run Code Online (Sandbox Code Playgroud)