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

来源:4-10 编程练习

大明猩L

2015-10-11 22:37

  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回答

  • pardon110
    2015-10-11 23:31:23
    已采纳

    全部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/>");       // 打印姓名
      }
    }


  • pardon110
    2015-10-12 08:29:18

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

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

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

    大明猩L

    不过我学习的过程有疑问时不经过认真的思考就急于先找到答案,事后也不总结,温习的时候也不太上心。也有很大的问题

    2015-10-12 10:48:50

    共 2 条回复 >

  • 大明猩L
    2015-10-12 00:28:39

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

JavaScript进阶篇

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

468195 学习 · 21891 问题

查看课程

相似问题