<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
请问哪位大佬能帮忙看一下,这个是啥情况?
用switch的话它会提示读取对象为空(switch
(infos[i][1]+infos[i][3]
),你知道为什么吗?
找到原因了:i<=infos.length,所以出错,换成i<infos.length即可
i不应该≤length吧 都超了索引了,<就行了