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

用了两个for循环,为什么第二个for循环里面筛选的女生不显示呢?

用了两个for循环,为什么第二个for循环里面筛选的女生不显示呢?

not_afraid 2016-04-27 17:44:54
<!DOCTYPE  HTML><html ><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>流程控制语句</title><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,'大三']    ]; //第一步把之前的数据写成一个数组的形式,定义变量为 infos for(var i=0;i<11;i++) { if(infos[i][3]==="大一") {document.write("大一新生"+infos[i][0]+"<br>");} //第一次筛选,找出都是大一的信息 } for(var i=0;i<11;i++) {  if(infos[i][1]=="女")  {document.write("女生"+infos[i][0]+"<br>");  }}  </script></head><body></body></html>
查看完整描述

4 回答

已采纳
?
guozhchun

TA贡献103条经验 获得超76个赞

for(var i=0;i<11;i++)   
// infos里面只有10个元素,下标范围 0 ~ 9,不能到10。这里for循环里面会出现下标越界。后面代码将不再执行


查看完整回答
2 反对 回复 2016-04-27
?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

因为infos数组的长度为10,而你却写成 for(var i=0;i<11;i++),你以为数组长度是11。

把两个地方的

 for(var i=0;i<11;i++)

改为

for(var i=0;i<infos.length;i++)


查看完整回答
4 反对 回复 2016-04-27
?
AMOR跳跳

TA贡献1条经验 获得超1个赞

尽量,不要自己去规定一个数组的长度,最好是通过函数直接得到,这样可以减少错误。

查看完整回答
1 反对 回复 2016-04-28
?
nikomal

TA贡献1条经验 获得超0个赞

循环遍历的时候最好使用.length来获取长度,最好是这样写
for (var i=0 var len=infos.length;i<len;i++){...}


查看完整回答
反对 回复 2016-04-28
  • 4 回答
  • 1 关注
  • 1910 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信