我无法理解JavaScript中的for / in语句。
我正在使用的book将其解释为:
for(variable in object){
statement
}
举个例子:
var links = {
link1: {img: '/img/link1.jpg', w: 100 },
link2: {img: '/img/link2.jpg', w: 140 }
};
我如何打印出所有链接?
如果我使用:
for(x in links){
document.write(x);
}
它写出了2个属性名(link1, link2)
,但我无法理解如何更深入地嵌入这些属性,我首先想到的是嵌套for/in
循环,但我只是不喜欢理解语法。例如。在上面的代码中,x
是否引用了属性名称?如果是这样,x.img
不会获得img
财产?或者我的想法是什么?
我很感激任何参考或链接到示例,我只是发现书中的2个代码示例并没有像我想的那样帮助我理解。
答案 0 :(得分:5)
x
是指属性名称,但不是属性值。因此,要访问属性值,您需要执行object[x]
。
所以,例如:
for (key in links) {
var linkProperties = links[key];
document.write(key + ": \n");
for (property in linkProperties) {
var propertyValue = linkProperties[property];
document.write(" " + property + " = " + propertyValue + "\n");
}
}
会给出
link1:
img = /img/link1.jpg
w = 100
link2:
img = /img/link2.jpg
w = 140
另外值得一提:正如this question的答案中所讨论的,使用hasOwnProperty
时几乎总是需要for ... in
保护条款。
答案 1 :(得分:-1)
for(x in links){
document.write(links[x]);
}