请问下按照下面代码写为什么会出错啊?

来源:4-10 编程练习

sadfiy

2017-08-27 15:59

<!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 infos2=new Array(5);
 var a=0;
 var b=0;
  for(var i=0;i<10;i++){
      
      if(infos[i][3]=="大一"){
          
          infos2[a]=infos[i];
          a++;
      }
  }
 //第二次筛选,找出都是女生的信息
  var infos3=new Array(3);
  for(var j=0;j<infos2.length;j++){
      
      if(infos2[j][1]=="女"){
          infos3[b]=infos2[j];
          b++;
          
      }
  }
  document.write(infos3);
  
</script>
</head>
<body>
</body>
</html>

我试了下如果最后一个if语句中换成document.write(infos2[j])的话是对的,不知道为什么按上面所写的会出错;

写回答 关注

4回答

  • 我要SSR
    2017-08-29 15:42:10
    已采纳

    有点杂耍了。。。其实很多不用写的。。。你这出现的问题是数组infos2给多了个位置,在for循环的时候,当他循环到空值时会误以为你没有定义。。。还有哥们,你是学JAVA过来学JS的吧?不然一般人不会先定义数组的大小。。。

    sadfiy

    非常感谢!

    2017-08-29 15:56:05

    共 4 条回复 >

  • qq_彼岸花开想念莫离_0
    2017-09-08 17:05:06

    infos[i][3]=="大一 "中的3什么意思啊

  • 空间的思考
    2017-09-03 13:57:02

    一定要清楚你写的每一句代码,计算机都是在怎么读取和处理这句代码的,而不是你觉得该怎么处理的。当然这需要很长时间的积累;

    还要多考虑程序的适用性和严谨性,要多方面的考虑程序是否能够更方便地使用。

    比如你这个程序,假设是一个成千上万组的数据,那么该用什么样的思想来处理呢?难道还在程序里填写对应的数据?那真是难以想象。

  • 精慕门4654877
    2017-08-27 16:25:14

    n你怎么复杂花了

    sadfiy

    自己第一个印象写的吧,就是不知道为什么错了

    2017-08-27 16:33:12

    共 1 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题