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

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

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

你用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了!!

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

SvenAs 提问者

谢谢! 明白了
2016-01-20 回复 有任何疑惑可以回复我~
#2

慕課君 回复 SvenAs 提问者

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

运行结果不对吧

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

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 />") }     
     }
  }

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

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

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

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

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

SvenAs 提问者

很感谢!!
2016-01-20 回复 有任何疑惑可以回复我~

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

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

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

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

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

SvenAs 提问者

明白了!感谢!
2016-01-20 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

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

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