今天在看别人代码过程中被 “for in”搞得有点晕,所以好好研究了一下,写下来分享给对 for in遍历理解有问题的朋友。
基本格式:
for (property in expression){
其他语句
}
expression为数组时,property会被赋值为项的位置;expression为对象时会被赋值为对象拥有的属性,但是其只能暂时性的存储一个属性值,并不会单独创建一个数组来存储所有属性值。
expression·为对象时:
<!DOCTYPE> <html> <body> <script type="text/javascript"> var obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象 var keys=[];//定义一个数组用来接受key var values=[];//定义一个数组用来接受value for(var key in obj){ keys.push(key); values.push(obj[key]);//取得value alert(eval("obj."+key));//循环内逐一打印value值 } alert(key); //输出为 sex,最后保存的为sex属性 alert(obj[key]); //输出为female, alert("keys is :"+keys+" and values is :"+values); //keys is : name,age,sex and values is : wjy,26,female </script> </body> </html>
需要注意的一点事key中存储的为属性的双引号格式即 “property”,所以数组在利用他的时候就不需要添加双引号了。
expression为数组时:
<!DOCTYPE> <html> <body> <script type="text/javascript"> var x var mycars = new Array() mycars[0] = "Saab" mycars[1] = "Volvo" mycars[2] = "BMW" for (x in mycars) { document.write(mycars[x] + "<br />") } </script> alert(x); // x的值为2 </body> </html>
转载请注明出处:http://www.cnblogs.com/lflj/