大神求助。这一章看懵了。

来源:4-10 编程练习

SvenAs

2016-01-19 21:26

var arr1 = [];

  var n = 0;

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

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

{  

  arr1[n] = infos[i];

  document.write(arr1[n]+"<br/>");

  n=n+1;

   

}  

    }

这里我实在是无力看懂。。。

有哪位懂得同学可以详细解说一下?谢谢!


写回答 关注

5回答

  • 海天之恋
    2016-01-19 22:12:08
    已采纳

    你用infos[i][j]存放这个数组i=10,j=4;注意数组最后一个是infos[9][3]; 你把10行数据存入数组,每行数据又包含4个数据,如果相判断“大一“就找一下每行数据的第四个数据也就是infos[i][3],这里用arr[]数组我觉得多余了,可以不必用,直接


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

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

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

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

        ['小I','女',20,'大一'],  ['小J','男',20,'大三']]
     
     //第一次筛选,找出都是大一的信息
     for(var i=0;i<n.length;i++){
        if(n[i][3]=="大一"){
            document.write(n[i]+"</br>");
        }
     }
    document.write("</br>");
     
     //第二次筛选,找出都是女生的信息
      for(var i=0;i<n.length;i++){
        if(n[i][1]=="女"){
            document.write(n[i]+"</br>");
        }
     }
     

    这样就OK了!!

    慕課君 回复SvenAs

    不知道你真明白还是明白一点,其实那个就是二维数组,很好理解,把大中括号里的每个小中括号看成一个整体,infos[i],在把每个小中括号看成一个数组,就变成infos[i][i],这个I是数组的下标可以是任何数。你可以把它看成图表,列是第一个大数组下标,行是小数组下标。我们在表格里通过行和列找到某一个点的数据,这样就很好理解了。

    2016-01-31 11:18:51

    共 2 条回复 >

  • 蓝清亮
    2016-02-22 23:39:28

    运行结果不对吧

  • 宇xixi
    2016-01-20 15:45:37

    var ifos=[
        ['小A','女',21,'大一'],['小B','男',23,'大三'],
        ['小C','男',24,'大四'],['小D','女',21,'大一'],
        ['小E','女',22,'大四'],['小F','男',21,'大一'],
        ['小G','女',22,'大二'],['小H','女',20,'大三'],
        ['小I','女',20,'大一'],['小J','男',20,'大三']]
     //第一步把之前的数据写成一个数组的形式,定义变量为 infos
     for(var i=0;i<ifos.length;i++)
     {
         /*第一种方法,一个if,两个判断

         if(ifos[i][3] == "大一" && ifos[i][1] =="女")
         {
            document.write(ifos[i] + "<br />")        
         }*/

         //第二种方法 两个if,连续判断
         if(ifos[i][3] == "大一" )
         {
            if(ifos[i][1] =="女")
            {document.write(ifos[i] + "<br />") }     
         }
      }

  • M_ing丶
    2016-01-20 10:41:10

    var arr1 = [];创建的这个数组使用来存放筛选出来是大一的人的信息;

    if( infos[i][3] == "大一" )表示的是判断infos这个数组中第四个信息,也就是二维数组中第四列信息是否为“大一”;

    arr1[n] = infos[i];如果判断出infos这个二维数组的第一行就符合的话就把这一行的信息存入arr1这个数组中,也就是arr1[0]=infos[0]

    SvenAs

    很感谢!!

    2016-01-20 13:32:38

    共 1 条回复 >

  • mingyec
    2016-01-19 22:01:26

    首先创建的是二维数组infos[i][j];然后目的是找大一的女生;

    题目中给的是10组一维数组[a,b,c,d]*10,这些一维数组中区别大一大二的是d,数组中下标是3

    所以判断infos[i][3]==“大一"就可以判断了,判断是否是女生也同理

    在一维数组中女生是出现在a即下标为0,所以infos[i][0]=="女生"

    SvenAs

    明白了!感谢!

    2016-01-20 13:36:07

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题