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

数组值循环后拿不到

    //创建数组
    var  arr = ['*','##',"***","&&","****","##*"];
    arr[7] = "**";
    //数组长度
    var l = arr.length;
    
    //删除数组中非*的项
    
    for(var i = 0;i < l; i++){
        var val = arr[i];

        if(val != undefined) {
            var newarr = val.split('');
            var newl = newarr.length;
            for(var j = 0; j < newl; j++){
                if(newarr[j] != '*'){
                    arr.splice(i, 1);
                    break;
                }
            }
        }
    }

通过循环后拿不到arr[2]="***"和arr[4]="****",不知道什么原因?循环外面是可以拿到的。求高人指点?        


提问者:创造与永恒 2016-06-03 09:28

个回答

  • qq_被爱的人不用道歉_0
    2016-06-08 11:29:47

    <!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) -->;
     //将数组内容输出,完成达到的效果。
    <!--document.write(arr+"<br>")-->
    for(var i=0;i<arr.length;i++){
        document.write(arr[i]+"<br>");
        }
    </script>
    </head>
    <body>
    </body>
    </html>

  • 性感的大鼻涕
    2016-06-04 04:47:04

    你写的太罗嗦了,定义了好多无意义变量,阅读起来很麻烦,不知道你是不是想要下面这个结果。字符串的判断还真不会,不过下面这个能得到纯星号的,arr[5]"##*"得不到

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

        if(arr[i]>="*"){

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

               }

        }

    </script>


  • Apathy1
    2016-06-03 09:58:41

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

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

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

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