问答详情
源自:3-8 编程练习

各位帮忙看下,怎么都是出现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>


提问者:qq_明若曉溪陌上錦年_0 2016-06-06 18:36

个回答

  • J拉拉
    2016-06-16 16:45:50

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

  • 慕粉小小星
    2016-06-14 17:48:37

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

  • 黎聪
    2016-06-08 10:27:26

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

  • 大神在路上
    2016-06-06 23:37:57

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

  • Chaos_祥
    2016-06-06 19:23:43

    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,因为它是个空值,所以输出没问题)

  • qq_高手研究风_03406978
    2016-06-06 19:22:46

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

  • ANAFKH
    2016-06-06 19:17:26

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

  • Chaos_祥
    2016-06-06 19:14:09

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

    数组的标签错了

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