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

请教,为什么要写var j=0和j=j+1呢?

  参考了一下答案,之前没写var j=0和j=j+1

var infos = 

 [

  ['小A','女',21,'大一'],

['小B','男',23,'大三'],

['小C','男',24,'大四'],

['小D','女',21,'大一'],

['小E','女',22,'大四'],

  ['小F','男',21,'大一'],

['小G','女',22,'大二'],

['小H','女',20,'大三'],

['小I','女',20,'大一'],

['小J','男',20,'大三']

  ];

var myarr=[];

var j=0

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

if(infos[i][3]=='大一'){

myarr[j]=infos[i];

j=j+1;

}

}

for(var j = 0, length2 = myarr.length; j < length2; j++){

if(myarr[j][1]=='女'){

document.write(myarr[j][0]);

}

}

请教,为什么要写var j=0和j=j+1呢?

提问者:秋挽词 2016-12-20 15:59

个回答

  • godlong
    2016-12-20 16:17:24
    已采纳

    声明j是用来往myarr中添加找到的符合标准的数据的,j=0时,找到一个,就把myarr[0]赋值为符合的数据,然后j+1变成1,又找到一个,myarr[1]为新找到的数据,依次类推...。到最后,myarr中存的都是符合条件的数据。再打印出来就行了。

  • CYD_IMC
    2016-12-20 16:26:28

    var infos = 
      [
    	['小A','女',21,'大一'],
    	['小B','男',23,'大三'],
    	['小C','男',24,'大四'],
    	['小D','女',21,'大一'],
    	['小E','女',22,'大四'],
    	['小F','男',21,'大一'],
    	['小G','女',22,'大二'],
    	['小H','女',20,'大三'],
    	['小I','女',20,'大一'],
    	['小J','男',20,'大三']
      ];
    var myarr=[];
    var j=0
    for(var i = 0, length1 = infos.length; i < length1; i++){
    	if(infos[i][3]=='大一'){
    		myarr[j]=infos[i];
    		j=j+1;
    	}
    }
    for(var j = 0, length2 = myarr.length; j < length2; j++){
    	if(myarr[j][1]=='女'){
    	document.write(myarr[j][0]);
    	}
    }

    代码顶格。真是个坏习惯。

    你没明白代码逻辑吧。先把infos里面的大一的抓出来,丢进数组myarr里。

    再把myarr里女的名字输出。myarr新下标可以动态添加数据。所以每加一个j++

    如果只是为了输出大一女的名字,代码可简化为:

    var infos = 
      [
    	['小A','女',21,'大一'],
    	['小B','男',23,'大三'],
    	['小C','男',24,'大四'],
    	['小D','女',21,'大一'],
    	['小E','女',22,'大四'],
    	['小F','男',21,'大一'],
    	['小G','女',22,'大二'],
    	['小H','女',20,'大三'],
    	['小I','女',20,'大一'],
    	['小J','男',20,'大三']
      ];
    for(var i = 0, length1 = infos.length; i < length1; i++){
    	if(infos[i][3]=='大一'&&infos[i][1]=='女'){
    		document.write(infos[i][0]);
    	}
    }

    如有问题请指正。

  • godlong
    2016-12-20 16:23:49

     //第一步把之前的数据写成一个数组的形式,定义变量为 infos

     var studentInfoArray = [['小A','女',21,'大一'],

     ['小B','男',23,'大三'],['小C','男',24,'大四'],

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

     ['小F','男',21,'大一'],['小G','女',22,'大二'],

     ['小H','女',20,'大三'],['小I','女',20,'大一'],

     ['小J','男',20,'大三']];

     var femaleArr = new Array(0);

     //第一次筛选,找出都是大一的信息

     for (i = 0; i < studentInfoArray.length; i++){

        if(studentInfoArray[i][3] == "大一"){

            var tempIndex = femaleArr.length;

            femaleArr[tempIndex] = studentInfoArray[i];

        }

     }

      

     //第二次筛选,找出都是女生的信息

     for (i = 0; i < femaleArr.length; i++) {

         if(femaleArr[i][1] == "女") {

             document.write(femaleArr[i][0] + "<br />");

         }

     }