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

请问为啥从第一次筛选的结果里再筛选,只出现了一个筛选结果???


<!DOCTYPE  HTML>

<html >

<head>

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

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

<script type="text/javascript">

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

 var info = [

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

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

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

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

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

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

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

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

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

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

    ];

 var i=0; var infos=new Array;

 document.write('大一学生为:'+'<br>');

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

 for (i=0;i<10;i++){

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

 document.write(info[i]+'<br>');

 infos[i]=info[i]}

 }

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

 document.write('女:'+'<br>');

 for(i=0;i<10;i++){

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

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

}

</script>

</head>

<body>

</body>

</html>

正在回答

4 回答

你的新定义数组infos 对应的是n 而不是i,所以你的 第一个var i=0 是不对的,应该初始化var n=0。

然后在第一个if语句里面应该是

 if(info[i][3]=='大一')

{

 document.write(info[i]+'<br>');

 infos[n]=info[i];

n++

}

完整修改后为:

<!DOCTYPE  HTML>

<html >

<head>

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

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

<script type="text/javascript">

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

 var info = [

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

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

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

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

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

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

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

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

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

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

    ];

 var n=0; 

 var infos=new Array();

 document.write('大一学生为:'+'<br>');

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

 for (i=0;i<info.length;i++)

 {

    if(info[i][3]=='大一')

    {

       document.write(info[i]+'<br>');

       infos[n]=info[i];

       n++

    }

 }

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

 document.write('女:'+'<br>');

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

 {

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

    {

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

    }

 }

</script>

</head>

<body>

</body>

</html>



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

未來Miral 提问者

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

你只要把infos[i]中的i换成其他变量,就能解决问题了!

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

new Array();你少了括号

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

首先你 infos[i]=info[i]后面少了分号,而且这语句已经赋值给了infos[i],所以会导致后面的if(infos[i][1]=='女')出错!

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

未來Miral 提问者

后面没听明白,具体该怎么改呢?谢谢
2016-10-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问为啥从第一次筛选的结果里再筛选,只出现了一个筛选结果???

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