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

请教大佬,这段switch代码一直报错

<script type="text/javascript">
 
 var infos = [
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']
];


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


这个写下来没有问题,但是把for那段换成:

    for(var i=0;i<=infos.length;i++){
       switch(infos[i][1]+infos[i][3]){
       case "女大二":
        document.write(infos[i][0]+"<br>");
        break;
       }
     }


虽然还是能出结果,但是控制台一直在报错:Uncaught TypeError Cannot read properties of undefined 

请问哪位大佬能帮忙看一下,这个是啥情况?

正在回答

3 回答

用switch的话它会提示读取对象为空(switch(infos[i][1]+infos[i][3]),你知道为什么吗?http://img1.sycdn.imooc.com//63feace800015a7b04720038.jpg

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

找到原因了:i<=infos.length,所以出错,换成i<infos.length即可

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

i不应该≤length吧 都超了索引了,<就行了

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

慕码人7255994 提问者

这个是的,当时没考虑到,感谢。不过这个修改不会影响报错信息
2022-05-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请教大佬,这段switch代码一直报错

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