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

哪位大神看看哪里错了,第二次筛选不出来

<!DOCTYPE  HTML>

<html >

<head>

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

<title>流程控制语句</title>

<script type="text/javascript">


 //第一步把之前的数据写成一个数组的形式,定义变量为 infos

 var infos=[

     ['小A','女',21,'大一'],

            ['小B','男',23,'大三'],

            ['小C','男',24,'大四'],

            ['小D','女',21,'大一'],

            ['小E','女',22,'大四'],

            ['小F','男',21,'大一'],

            ['小G','女',22,'大二'],

            ['小H','女',20,'大三'],

            ['小I','女',20,'大一'],

            ['小J','男',20,'大三']];

 //第一次筛选,找出都是大一的信息

 var arr=new Array();

  var n=0;

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

     if(infos[i][3]=='大一'){

         document.write(infos[i]+"<br>")

     arr[n]=infos[i];

     n++;

     }

 }

 //第二次筛选,找出都是女生的信息

 document.write("<br>"+"第二次筛选出来的"+"<br>");

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

 if(arr[n][1]=='女'){

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

 }

 }

</script>

</head>

<body>

</body>

</html>


正在回答

7 回答

多了个等号还真是影响挺大的。第一次筛选的条件中应该为i<infos.length;把等号去掉就可以了。

PS:如果是i<=infos.length的话(此处length为10),由循环条件可知,i=10的时候会继续执行一次i++,也就是说存在i=11的情况,但是infos数组中并没有第11个元素,这个时候输出结果document.write(infos[11])将会是undefined。而且在arr[n]=infos[i];这一步也用了i,既然info[11]为undefined,那么arr[n]在i=11的时候就没意义了,就是说这个循环实际是存在错误的,在JS中某一部分出错的话可能会影响到下边的代码,这个你可以试一下,按你原本的程序,在第一次筛选那部分代码的后面随便加个document.write('随便输'),窗口是都不会显示的。

总之吧,以后写循环条件的时候要多注意些。

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

Mr丶Jia 提问者

非常感谢!
2016-12-28 回复 有任何疑惑可以回复我~

哪里不懂提出来,告诉我,我再给你讲讲

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

continue不满足条件的话,下面代码不执行,直接进入下一次循环

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

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

     //第一次筛选,找出都是大一的信息

     if(infos[i][3] == "大一"){

         //第二次筛选,找出都是女生的信息

         if(infos[i][1] == "女"){

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

         }

     }else{

         continue;

     }

 }

循环选择判断

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

var infos = [

    

    ['小A','女',21,'大一'],

    ['小B','男',23,'大三'],

    ['小C','男',24,'大四'],

    ['小D','女',21,'大一'],

    ['小E','女',22,'大四'],

    ['小F','男',21,'大一'],

    ['小G','女',22,'大二'],

    ['小H','女',20,'大三'],

    ['小I','女',20,'大一'],

    ['小J','男',20,'大三']

 ];

二位数组

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

我知道大概看了看这节。大概明白讲了个毛。不太会。帮不了忙。-  -不明白为啥、你第一次大一用infos第2次女要用arr= =不明觉厉、

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

Mr丶Jia 提问者

谢谢!
2016-12-28 回复 有任何疑惑可以回复我~

if(arr[n][1]=='女'){

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

 }

我看他们的没有【0】

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

举报

0/150
提交
取消

哪位大神看看哪里错了,第二次筛选不出来

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