js 进阶4-10课 用PUSH函数这样写不行吗

 在控制台可以看到数组infos2,但是不显示。

//第一步把之前的数据写成一个数组的形式,定义变量为 infos

 var infos = [

    ['小A','女',21,'大一'],

    ['小B','男',23,'大三'],

    ['小C','男',24,'大四'],

    ['小C','男',24,'大四'],

    ['小D','女',21,'大一'],

    ['小E','女',22,'大四'],

    ['小F','男',21,'大一'],

    ['小G','女',22,'大二'],

    ['小H','女',20,'大三'],

    ['小I','女',20,'大一'],

    ['小J','男',20,'大三']

];

 

 //第一次筛选,找出都是大一的信息

 var infos2 = new Array;

 

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

     if(infos[i][3]==="大一"){

        document.write(infos[i]+"<br>");

        infos2.push(infos[i]);

     }

 }


 //第二次筛选,找出都是女生的信息

 

 for (var j =0;j<=infos2.length;j++){

    if(infos2[j][1]==="女"){ 

        document.write(infos2[j]+"<br>");

    }

 }


小黑_01
浏览 1749回答 3
3回答

cnyballk

循环时数组下标越界,你多琢磨琢磨,下标是从0开始 长度是1开始 最后那个的下标是不是长度减一,所以应该<x.length或者<=x.length-1

慕慕6468460

1.题主在循环是数组下标相当于越界了;2.在判断女生的时候,infos2内的数组存放的只有大一的女生综上代码修改应如下所示://第一次筛选,找出都是大一的信息 var infos2 = new Array;  for (var i = 0;i<infos.length;i++){     if(infos[i][3]==="大一"){        document.write(infos[i]+"<br>");        infos2.push(infos[i]);     } } document.write("<hr>");  for (var j = 0;i<infos2.length;i++){     if(infos2[j][1]==="女"){       document.write(infos2[j]+"<br>");     } }

__innocence

 for (var i = 0;i<=infos.length;i++)    for (var j =0;j<=infos2.length;j++)--->for (var i = 0;i<infos.length;i++) for (var j =0;j<infos2.length;j++)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript