javascript中的for in-loop
我试图理解下面的javascript代码片段javascript中的for in-loop,javascript,Javascript,我试图理解下面的javascript代码片段 <!DOCTYPE html> <html> <body> <p>Click the button to loop through the properties of an object named "person".</p> <button onclick="myFunction()">Try it</button> <p id="demo"></
<!DOCTYPE html>
<html>
<body>
<p>Click the button to loop through the properties of an object named "person".</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script type="text/javascript">
function myFunction()
{
var x;
var txt="";
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
txt=txt + person[x];
}
document.getElementById("demo").innerHTML=txt;
}
</script>
</body>
</html>
正如我猜测的,它是一个关联数组,具有键-->值关系,最终结果是它不应该这样打印吗
fname:"John",lname:"Doe",age:25
??
非常感谢首先,JavaScript中没有关联数组的概念,person
是一个对象,对象使用for in
循环进行迭代
该行:
txt = txt + person[x];
只需读取person
对象的每个属性,并将txt
变量中的值串联起来,即可得到以下结果:
JohnDoe25
仅供参考,始终使用
作为对象的in
循环,使用普通作为数组的
循环。首先人
不是数组它是对象
其次,for(x个人)
这里x
是键
,因此person[x]
将给出值
现在在第txt=txt+person[x]
行中,您只是连接字符串(值而不是键),因此txt
将只包含所有值
被前一个答案击败了大约10秒:)如前所述,
javascript没有关联数组的概念,因此最好阅读一些关于js的内容,而不是普通的运行和测试方法,因为有些行为在逻辑上是不正确的,直到我们学会用js的方式思考
对于for..in循环,请检查此项并阅读hasOwnProperty
部分。这让很多人感到困惑
我建议您阅读并在有任何问题时继续检查MDN。那里的文档非常好。什么是
person[x]
?对于x=“fname”
我们有person[x]=“John”
。结果是“John”+“Doe”+“25”=“JohnDoe25”
。想想看。:)可能会帮助您玩:`>var txt=“”;>var person={fname:“John”,lname:“Doe”,年龄:25};>对于(x个人){txt=txt+person[x];}>x`10秒或2分钟?;-)嗯,我已经准备好回复了,然后收到了一个警告,另一个答案贴了出来:)所以我花了更多的时间,从容地贴了出来:)
JohnDoe25