参考了一下答案,之前没写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呢?
声明j是用来往myarr中添加找到的符合标准的数据的,j=0时,找到一个,就把myarr[0]赋值为符合的数据,然后j+1变成1,又找到一个,myarr[1]为新找到的数据,依次类推...。到最后,myarr中存的都是符合条件的数据。再打印出来就行了。
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]); } }
如有问题请指正。
//第一步把之前的数据写成一个数组的形式,定义变量为 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 />");
}
}