为了账号安全,请及时绑定邮箱和手机立即绑定

各位帮忙看下,怎么都是出现undefined?自己打了好几遍 找不到原因

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>数组</title>

<script type="text/javascript">


 var a=['*','##','***',"&&","****","##*"];


 a[7]="**";


 alert(a.length);


 for(var i=0;i<a.length;i++){

     a[i]=new Array();


document.write(a["+i+"]+"</br>");


}


</script>

</head>

<body>

</body>

</html>


正在回答

8 回答

HTML语言,是按顺序执行下来的,你在第9行定义了a数组并且给赋值了,但是在接下来你的for循环里又重新定义了a数组,没有给赋值,输出的结果当然是undefined.

0 回复 有任何疑惑可以回复我~

看你的问题,是要输出数组的值吧,一个是引号的问题,一个是循环中定义的数组,看看这样呢http://img1.sycdn.imooc.com//575fd2eb000103c705870609.jpg

0 回复 有任何疑惑可以回复我~

for(var i=0;i<arr.length;i++){
    document.write(arr[i]+'<br>')
}

0 回复 有任何疑惑可以回复我~

一共有7个元素,而arr[7]代表arr的长度为8,中间肯定会有一个没有声明赋值所以就出现undefined的了

0 回复 有任何疑惑可以回复我~
for(var i=0;i<a.length;i++){
     a[i]=new Array();

document.write(a["+i+"]+"</br>");

}

a[i]=new Array();//把这句放到循环前,这句的意思是定义数组,你把它放到循环里,它就循环了数次

document.write(a["+i+"]+"</br>");//改成document.write(a[i]+"</br>");

这样就基本没问题(a[6]还是会输出undefined,因为它是个空值,所以输出没问题)

0 回复 有任何疑惑可以回复我~
#1

Chaos_祥

循环了数次,也就是定义了好几次数组
2016-06-06 回复 有任何疑惑可以回复我~

document.write(a[i]+"<br/>"); 看下怎么用+号连接吧

0 回复 有任何疑惑可以回复我~

document.write(a[i]+"<br/>");

0 回复 有任何疑惑可以回复我~
document.write(a["+i+"]+"</br>");

数组的标签错了

document.write(a[i]+"</br>");


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

各位帮忙看下,怎么都是出现undefined?自己打了好几遍 找不到原因

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信