问题描述
- js中用for in 语句遍历数组问题
- var arr=new Array(3);
用for循环遍历:
for(var x=0;x<arr.length;x++){
document.write(arr[x]);
}
网页上显示:undefined undefined undefined现在用for in 遍历:
for(var x in arr){
document.write(arr[x]);
}
为什么网页上什么都不显示?
解决方案
这两种方式有差异的,对于第一种方式来说,在new的时候确定了array的大小,循环数组大小取值,因为没有初始值,都是undefined.
第二种方式是通过array的属性方式,是不关心数组大小的,只关心里面内容,因为没有赋值,因为只有长度,实际内部还是没有内容,无法形成keyvalue的方式,也就没有输出。
解决方案二:
var arr=new Array(3);
用for循环遍历:
for(var x=0;x<arr.length;x++){
document.write(arr[x]);
}
网页上显示:undefined undefined undefined
arr没有初始化,所以显示未定义的错误
现在用for in 遍历:
for(var x in arr){
document.write(arr[x]);
}
为什么网页上什么都不显示?
因为这个数组,没有初始化,所以循环没有满足条件去运行
解决方案三:
用for in,直接写document.write(x);就可以了。x不是数组的下标而是数组中的值
解决方案四:
很显然嘛,你的数组没有初始化,所以提示undefined。
解决方案五:
数组里面没东西,没初始化
解决方案六:
引入jquery用each循环最好了
解决方案七:
第一种相当于x是索引值,输出用arr[x]第二种和第一种是有区别的,输出肯定不能还是那样。。。第二个没有初始化内容也不会显示。。。
时间: 2024-12-03 19:11:05