为什么只输出小A

来源:4-10 编程练习

达文西H

2017-01-22 22:25

<!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 one=new Array();
 //var n=0;//注释掉只输出小A
 //第一次筛选,找出都是大一的信息
 for(var i=0;i<infos.length;i++){
     if(infos[i][3]=='大一'){
     one[i]=infos[i];
     document.write(one[i]+"<br/>");
     //one[n]=infos[i];//注释掉只输出小A
     //n++;//注释掉只输出小A
     }
 }
 //第二次筛选,找出都是女生的信息
 for(var j=0;j<one.length;j++){
     if(one[j][1]=='女'){
         document.write("第二次筛选后:"+one[j][0]+"<br/>");
     }
 }

 
</script>
</head>
<body>
</body>
</html>

写回答 关注

1回答

  • 用户202173
    2017-01-23 00:35:15
    已采纳

    你这找出四个大一的保存在one中,其实分别下标是0,3,5,8,one的长度是9,你第二次循环的的时候,刚开始找到one[0],没有问题,接下来就是one[1]这时候这个one[1]是undefined,你访问undefined的下标1企图得到性别,这样就会出错,程序终止。

    达文西H

    明白了,非常感谢!

    2017-01-24 20:50:23

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题