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

求助!!新人关于js的问题!多谢!

求助!!新人关于js的问题!多谢!

庆4 2016-07-18 16:15:30
<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,"大三"]]; //第一步把之前的数据写成一个数组的形式,定义变量为 infosvar girl= [];var n = 0;for(var i=0;i<infos.length;i++) //第一次筛选,找出都是大一的信息 {     if(infos[i][3]==="大一")        {            girl[n] = infos[i];            document.write("大一的学生有:"+girl[n]+"<br>");            n=n+1;        } } document.write(girl.length);                //第二次筛选,找出都是女生的信息</script>这里的var i=0;i<infos.length;i++,为什么改成i<=infos.length,就会不能输出最下面的girl.length?
查看完整描述

3 回答

已采纳
?
慕粉3330983

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

for循环是先判断条件 再执行++ 如果加等号 会出现执行i=11 但i=11的时候 infos[11]是没有的 所以会报错

查看完整回答
1 反对 回复 2016-07-18
?
乔帮主

TA贡献184条经验 获得超67个赞

改成i<=infos.length,就会报数组越界的错误啊!因为你这个数组长度为10,而infos.length这个长度等于10,如果小于等于10的话,长度就为11,这样就错了(数组是从下标0开始的)

查看完整回答
反对 回复 2016-07-18
?
狐狸别跑

TA贡献20条经验 获得超3个赞

建议去看看for循环

查看完整回答
反对 回复 2016-07-18
  • 3 回答
  • 0 关注
  • 1220 浏览
慕课专栏
更多

添加回答

举报

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