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

关于第四章编程练习答案的疑问

  var arr1 = []; //新建一个数组的原因是不和infos重合吗?
   var n = 0;  //为什么要声明一个n变量,并且赋值为0?
   for(var i=0;i<infos.length;i++){ 
        if( infos[i][3] == "大一" ){  //infos[i][3]的含义是不是指“数组索引号i与3”?  
           arr1[n] = infos[i];
            document.write(arr1[n]+"<br/>");
           n=n+1;
            
        }  
   }

用注释写在语言里

正在回答

3 回答

全部js代码与注释如下

// 第一步把之前的数据写成一个数组的形式,定义变量为 infos
 var infos = [ ['小A','女',21,'大一'],  ['小B','男',23,'大三'],

    ['小C','男',24,'大四'],  ['小D','女',21,'大一'],

   ['小E','女',22,'大四'], ['小F','男',21,'大一'],

    ['小G','女',22,'大二'],  ['小H','女',20,'大三'],

    ['小I','女',20,'大一'],  ['小J','男',20,'大三']];
   
 var arr = []; // 定义一个数组

// 第一次筛选,找出都是大一的信息(数组arr1)
  for(var i=0;i<infos.length;i++){ 
       if( infos[i][3] == "大一" ){           // 筛选所有大一学生信息 
          arr.push(infos[i]);                 // 将其置于新数组              
       }  
  }
 // 第二次筛选,找出都是女生的信息(并打印出来)
for(var i=0; i<arr.length;i++){
  if(arr[i][1] == '女'){                    // 筛选新数组中的所有女生
    document.write(arr[i][0]+"<br/>");       // 打印姓名
  }
}


0 回复 有任何疑惑可以回复我~

infos[i][3] 是个二维数组, 你可以把它看作是个张Excel表格,其中i决定的是行,3则代表列,整个合起来指向一个单元格。需要注意的是在索引值默认都是从0开始的(这也是n的初始值为什么通常是0的原因),所以这里的3其实就是第4列。至于if中的条件,你需要分析观察infos二维数组内容结构。

infos二维数组看成表,则表示一个10行4列的表,其中每列依次表示为:姓名,性别,年龄,年级。理解这些,你就可以很清晰的知道infos[i][3]指获取年级。

若还不能理解,打开Excel表比划比划。不明白if 是你需要加强数组学习。有时候慢就是快……

1 回复 有任何疑惑可以回复我~
#1

大明猩L 提问者

昨天恰好学到二维数组的课程,可是对它的逻辑完全不理解。心里的确是急于求成了,慢慢来,会比较快一点。看来是攻城狮必备的好心态
2015-10-12 回复 有任何疑惑可以回复我~
#2

大明猩L 提问者

不过我学习的过程有疑问时不经过认真的思考就急于先找到答案,事后也不总结,温习的时候也不太上心。也有很大的问题
2015-10-12 回复 有任何疑惑可以回复我~

if中的条件是指的什么意思呢

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       467077    人
  • 解答问题       21874    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于第四章编程练习答案的疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信