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

求助各位js大神帮助

<!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:22

个回答

  • 猫儿当自强
    2018-06-18 17:40:46
    已采纳

    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

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


  • 肆guliang
    2018-06-20 13:01:48

    <!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++){

       if(arr[i]==undefined){

            continue;

        }

        

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

            myarr.push(arr[i]);

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

        }


        

       

        

    }

    myarr.sort();

    document.write("<br/>排序数组:<br/>");

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

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

    }

    </script>

    </head>

    <body>

    </body>

    </html>

    //这样就ok了,本意是使用正则将全是*的元素挑选出来放入一个新数组中,对新数组进行排序,然后输出;改了时候可以了,数组中添加元素的方法:push()在末尾添加;unshift()开头添加,还有一个splice()方法,不过没怎么用