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

求助各位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>



正在回答

2 回答

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

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


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

肆guliang 提问者

本意是使用正则将全是*的元素挑选出来放入一个新数组中,对新数组进行排序,然后输出,数组中添加元素的方法我用错了,正确的方法有:push()在末尾添加;unshift()开头添加,还有一个splice()方法,不过没怎么用
2018-06-20 回复 有任何疑惑可以回复我~

<!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()方法,不过没怎么用

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468044    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

求助各位js大神帮助

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