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

for循环为什么只输出了第一个元素值,问题代码都存在什么问题呢?

<!DOCTYPE  HTML>

<html >

<head>

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

<title>数组</title>

<script type="text/javascript">

 //创建数组

 var arr = ["*","##","***","&&","****","##*"];

 arr[7]="**";

 //显示数组长度

 //alert(arr.length);

 

 //将数组内容输出,完成达到的效果。

/*

for(var i=0;i<arr.length-1;i++){

    if(i%2==0 && i<6){

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

        if(i==0){

            document.write(arr[7]+"<br/>");

        }

    }

}

*/

/*

以下为有问题的代码 问题:第一个for循环为何只输出了第一个元素值

*/

var myarr = new Array();

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

   

    document.write(arr[i]+"&nbsp;&nbsp;kkk");


    if(arr[i].match(new RegExp("^[*]{1,4}$")){

        myarr.add(arr[i]);

    }

    if(arr[i]==undefined){

        continue;

    }

 

}

myarr.sort();

for(var j=0;j<myarr.length;j++){

    document.write(myarr[j]+"<br/>");

}

</script>

</head>

<body>

</body>

</html>


提问者:肆guliang 2018-06-17 11:25

个回答

  • 猫儿当自强
    2018-06-18 17:40:30

    for 循环要先判断不是undefined,最好这样写

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

       

        document.write(arr[i]+"&nbsp;&nbsp;kkk");


        if(arr[i]==undefined&&arr[i].match(new RegExp("^[*]{1,4}$"))){

            myarr.add(arr[i]);

        }

     

    }

    还有 你if 判断里面少了个括号 我开始连第一个都显示不出来  找半天

    修改后显示为

    *  kkk##  kkk***  kkk&&  kkk****  kkk##*  kkkundefined  kkk

    因为还没学正则 所以不太懂你代码意思,但是我觉得这个问题你自己应该能搞定