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

求问为什么第二次筛选信息女的代码不执行?

<script type="text/javascript">

 var infos=[

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

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

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

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

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

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

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

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

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

    ['小J','男',20,'大三']]//第一步把之前的数据写成一个数组的形式,定义变量为 infos

document.write("第一次筛选大一的信息人员");

var arr=new Array();

var j=0;

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

{

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

{

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

arr[j]=infos[i];

j++;

}

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

document.write("第二次筛选大一的信息人员");


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

{

if(arr[j][1]=='女')

{

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

}

}

   

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

 

 

  

</script>


正在回答

4 回答

<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();

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

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

 arr[i]=new Array();

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

      arr[i]=infos[i];

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

    }   

}  

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

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

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

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

      }

 } 

</script>


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

你的代码有报错,在编辑器里试试。循环的条件不能等于数组的长度,数组里没有这一项

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

越界了,i和j等于数组长度的时候,arr[i]表示长度的下一个索引

循环可以用for(var i in arr){执行语句}

例如:

<!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();

 for(var i in infos){

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

         arr[i] = infos[i];

     }

 }

  

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

 for(var j in arr){

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

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

     }

 }

 

  

</script>

</head>

<body>

</body>

</html>


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

第二次局部变量j和全局变量j有冲突,下面的循环仍然可以用i,不放心的话,试下k

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

举报

0/150
提交
取消

求问为什么第二次筛选信息女的代码不执行?

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