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

来源:4-10 编程练习

慕码人7255994

2022-05-04 18:10

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

  • 慕函数7131464
    2023-03-01 09:39:54

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

  • 慕码人7255994
    2022-05-16 22:53:11

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

  • 都白白
    2022-05-05 20:09:33

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

    慕码人725...

    这个是的,当时没考虑到,感谢。不过这个修改不会影响报错信息

    2022-05-05 20:11:29

    共 1 条回复 >

JavaScript进阶篇

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

468063 学习 · 21891 问题

查看课程

相似问题