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

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

<!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 回答

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

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

我要SSR

应该说是空指针异常
2017-08-29 回复 有任何疑惑可以回复我~
#2

sadfiy 提问者 回复 我要SSR

恩,但是空的问题的话第一次筛选那通过设置a变量已经解决了啊
2017-08-29 回复 有任何疑惑可以回复我~
#3

sadfiy 提问者

非常感谢!
2017-08-29 回复 有任何疑惑可以回复我~
查看1条回复

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

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

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

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

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

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

n你怎么复杂花了

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

sadfiy 提问者

自己第一个印象写的吧,就是不知道为什么错了
2017-08-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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