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

<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

var 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?

庆4
浏览 1221回答 3
3回答

慕粉3330983

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

乔帮主

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

狐狸别跑

建议去看看for循环
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript