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

为何第一部分执行完后,第二部分无论写什么都不显示呢?第二部分我写了个document.write就是无法显示,哪里出错了?

<!DOCTYPE  HTML>

<html >

<head>

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

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

<script type="text/javascript">

var myinfo=[  

    ['小A','女',21,'大一'],  ['小B','男',23,'大三'],


    ['小C','男',24,'大四'],  ['小D','女',21,'大一'],


    ['小E','女',22,'大四'],  ['小F','男',21,'大一'],


    ['小G','女',22,'大二'],  ['小H','女',20,'大三'],


    ['小I','女',20,'大一'],  ['小J','男',20,'大三']];

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

var sex=new Array();


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


  for(var x=0;x<=myinfo.length;x++){

     if(myinfo[x][3]=="大一"){

        for(var y=0;y<=3;y++){

            

            if (y==3){

            document.write(myinfo[x][y]+"<br>");            

            }else{

            document.write(myinfo[x][y]+"&nbsp");         

            };

        };

     };

    };


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

document.write("第二次筛选:<br>");

  

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

 

 

  

</script>

</head>

<body>

</body>

</html>


正在回答

3 回答

 for(var x=0;x<=myinfo.length;x++)  因为你的长度是从0开始 ,x<=myinfo.length的话for循环没有跳出来,你可以改成x<myinfo.length ,就可以了

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

地狱快车_666 提问者

大神正解!
2016-05-23 回复 有任何疑惑可以回复我~

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

以上代码是别人的,我看了一下,大神啊!把两个条件“与”操作就是,不用那么复杂。

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

地狱快车_666 提问者

第三步: 最后再一次筛选上一步得到的数据,打印出都是女生的姓名 ; 是从第二次筛选的数据中取出,不是第一次定义的数据里,上面的那个写法是不正确的,虽然结果一样,逻辑不对。编程练习就是增加复杂度和难度技巧哦。
2016-05-24 回复 有任何疑惑可以回复我~

        if (y==3){

            document.write(myinfo[x][y]+"<br>");            

            }else{

            document.write(myinfo[x][y]+"&nbsp");         

            };

这两行一样的???

不用那么复杂筛选两次,用&&即可

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

地狱快车_666 提问者

这2行不一样的一个是当y=4时输出换行,一个是输出空格。
2016-05-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为何第一部分执行完后,第二部分无论写什么都不显示呢?第二部分我写了个document.write就是无法显示,哪里出错了?

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