我正在阅读“网页设计师的JavaScript”这本书,我来到这个例子:
var fullName = {
"first": "John",
"last": "Smith"
};
for (var name in fullName) {
console.log(name + ": " + fullName[name]);
}
输出结果为:
"first: John"
"last: Smith"
我不知道的是:我在哪里告诉程序获取字符串“first”和“last”。我的意思是,循环对象“fullName”,我没有看到“名称”如何与“第一”和“最后”相关。我希望这很清楚。 你能帮我吗?非常感谢!
答案 0 :(得分:12)
for..in
遍历对象的键。然后,您可以访问对象值by name using brackets。
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]);
}
答案 1 :(得分: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]);
}
答案 2 :(得分:3)
for..in
循环将遍历对象的键。如果你在一个数组上使用它,那么它(大多数浏览器引擎)会将数组转换为幕后的对象(在字典模式上阅读更多内容)并迭代键。
您可以使用
查看密钥
var fullName = {
"first": "John",
"last": "Smith"
};
console.log(Object.keys(fullName));
然后基本上迭代了这个调用的结果。请注意,使用for..in
并不能保证键值对的顺序。
答案 3 :(得分:3)
name
中的表示对象的键,
第一个和最后一个都是对象中的键。并可用于访问对象中的值。
像在循环的第一次运行中一样,它将是这样的for("first" in fullName) {
console.log("first" + ": " + fullName["first"] //John);
}
答案 4 :(得分:2)
循环访问对象时,会遍历键。此对象的键是first
和last
。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in。