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

哪位大神可以帮我看一下 为什么第二个筛选只出来一个 没有继续往下显示

<!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,'大四'],

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

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

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

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

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

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

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

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

 

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

 var myarr=new Array();

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

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

         myarr[i]=infos[i];

         document.write(myarr[i]);

     }

 }

  

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

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

     if(myarr[i][1]=='女'){

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

     }

 }

 

  

</script>

</head>

<body>

</body>

</html>


正在回答

5 回答

问题出现在

myarr[i]=infos[i];

这里其实是将数组myarr的值赋为

[['小A','女',21,'大一'],null,null, ['小D','女',21,'大一'],null, ['小F','男',21,'大一'],null,null,['小I','女',20,'大一']]长度为9


这导致在下面进行第二次筛选的时候,myarr[1][1]值不存在,即遇到错误,也就不会进行后续的循环了

所以创建一个新变量,使数组myarr的变量和infos的变量不相同是必须的

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

因为你的myarr[]不在上一个循环里,myarr[]只是“局部变量”,并不是全局变量,

 for(var i=0; i<infos.length; i++){
     
    if(infos[i][3]=='大一'){
        
        arr[i]=infos[i];
        
        document.write(arr[i]);
        
    for(var j=0;j<arr.length;j++){
    if(arr[j][1]=='女生'){
        document.write(arr1[j][0]+"<br/>");
    }
 }
    }
 }

参考一下

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

改成这样就好了   

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

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

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

     }

 }


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

循环条件写错了吧 按照第一次的循环条件是可以的

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

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

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

         myarr[i]=infos[i];

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

     }

 }


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

举报

0/150
提交
取消

哪位大神可以帮我看一下 为什么第二个筛选只出来一个 没有继续往下显示

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