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

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

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

小黑_01 2017-08-08 22:56:55
 在控制台可以看到数组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>");    } }
查看完整描述

3 回答

已采纳
?
cnyballk

TA贡献148条经验 获得超93个赞

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

查看完整回答
1 反对 回复 2017-08-09
?
慕慕6468460

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


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>");

     }

 }

查看完整回答
反对 回复 2017-08-09
?
__innocence

TA贡献313条经验 获得超208个赞

 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++)


查看完整回答
反对 回复 2017-08-09
  • 3 回答
  • 0 关注
  • 1748 浏览
慕课专栏
更多

添加回答

举报

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