问答详情
源自:4-10 编程练习

很久都不明白。。不明白怎么没有j了 二维数组比较晕

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
var infos=[["小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<infos.length;i++)
 {  
     var infos[i]=new Array;
    for(var j=0;j<4;j++)
    {
        if(infos[i][3]=="大一")
        {
            if(infos[i][1]=="女")
        {
         document.write("名字是:"+infos[i][0]+"<br>");
        }
        
        }
        
    }
   
 }



 
</script>
</head>
<body>
</body>
</html>

去除掉 这两行var infos[i]=new Array;
                       for(var j=0;j<4;j++)

就正常了,我也看得懂,就是不明白上几节的时候定义二维数组是要用到mychar[i][j]=i+j;这个为啥不用到j了呢。。。就是为啥子只定义了一个for(var i=0;i<infos.length;i++);就开始用if了,还是说那个infos已经是二维数组就不需要定义了?我转不过来弯了。。。求各位指点,我比较愚笨。

提问者:秋山君 2016-05-24 16:29

个回答

  • 慕娘9282524
    2016-05-24 17:11:25
    已采纳

    infos=[["小A","女",21,"大一"],["小B","男",23,"大三"],["小C","男",24,"大四"],["小D","女",21,"大一"],["小E","女",22,"大四"],["小F","男",21,"大一"],["小G","女",22,"大二"],["小H","女",20,"大三"],["小I","女",20,"大一"],["小J","男",20,"大三"]];  

    首先  这样定义 infos  他就已经是一个二维数组了。 每一个学生的各种信息构成一个数组。 所有的学生又构成令一个数组。 

    这里  infos[0][0]就代表 “小A”这个字符串 ; infos[0][1] 就代表“女”这个字符串;以此类推;

    比如 我找到所有女生的信息;

    就循环每一个学生的信息 如  for(i=0;i<infos.length;i++){
    if(infos[i][1]=="女"){
         document.write("学生姓名是"+infos[i][0])

    }

    }


  • 冷卅
    2016-05-24 16:43:51

    var infos=[["小A","女",21,"大一"],["小B","男",23,"大三"],["小C","男",24,"大四"],["小D","女",21,"大一"],["小E","女",22,"大四"],["小F","男",21,"大一"],["小G","女",22,"大二"],["小H","女",20,"大三"],["小I","女",20,"大一"],["小J","男",20,"大三"]];其中第一个for循环是对["小A","女",21,"大一"]这类的进行的,第二个for循环是对["小A","女",21,"大一"]中的元素进行循环的吧

  • 秋山君
    2016-05-24 16:33:37

    就是之前的知识点是有提到mychar[j],然后可以用char[i][j],这里面没有定义infos[j],怎么就用infos[i][3]了?我知道infos[i][3]的意思,就是不知道要不要再用个[j]来解释[3]...