问答详情
源自:4-10 编程练习

请问一下我哪里出问题了?

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

    

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

 document.write("第一次筛选,找出都是大一的信息"+"<br>");

 var temp=[];

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

     for(j=0;j<infos[i].length;j++){

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

            temp[i]=infos[i];

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

         }

     }

 }

 

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

 document.write("第二次筛选,找出都是女生的信息"+"<br>");

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

     for(j=0;j<temp[i].length;j++){

         if(temp[i][j]=='女')

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

     }

 }

</script>

</head>

<body>

</body>

</html>

效果图:第一次没问题,为什么第二次只出来一条。

https://img1.mukewang.com/5c3ef4fc0001f1f304840258.jpg

提问者:qq_慕斯7122577 2019-01-16 17:12

个回答

  • Gewendolyn8
    2019-01-16 21:10:44
    已采纳

    如果你想把第一次筛选的结果都存放到temp中,用temp[i]=infos[i];是不对的。因为对于不是大一的学生,temp也会给他空对应的位置,只不过值为空。temp里的数据如下:

    [小A,女,21,大一]
    [undefined]
    [undefined]
    [小D,女,21,大一]
    [undefined]
    [小F,男,21,大一]
    [undefined]
    [undefined]
    [小I,女,20,大一]

    你可以参考以下的方法来设置,保证temp中没有空值。

    https://img4.mukewang.com/5c3f2d3100019bb005440242.jpg

  • 慕移动9181930
    2022-03-24 21:18:47

    话说这种边学习边练习的方式,实在是太好了,太棒了!,