朝闻道夕
2017-01-31 18:16
var st=[
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三'],
]
var st1=new Array();
var n=0; //第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(i=0;i<st.length;i++){
if(st[i][3]=="大一"){
document.write(st[i]+"<br/>");
st1[n]=st[i];
n++;}
}
//第一次筛选,找出都是大一的信息
for(n=0;n<st1.length;n++){
if(st1[n][1]=="女"){
document.write(st1[n][0]+"<br/>");
}
} //第二次筛选,找出都是女生的信息
在上例中,st1[n]不是一个一维数组吗,它里面只有"[小A]","[小D]","[小F]","[小I]"这四个数据吗?怎么通过它来判断这四个是否是女生?
第一次筛选的时候,就是将st[i]的值赋予了st1[n],st[i]的值里面就是最初定义的信息,女生是判断条件,符合“女生”这个条件的,就开始执行将st[i]的值赋予了st1[n]。。
['小J','男',20,'大三'] 这里面是不是有四个数据,每个数据分别对应“0”“1”“2”“3” ,所以,你就会看到第二此筛选中有 if(st1[n][1]=="女") 这样的判断条件,按顺序执行[0][1],[1][1],[2][1],[3][1]。这些都是执行过程中利用if的条件进行判断上面的四个数组数据是否符合,符合的话,就输出姓名,姓名就是 通过这句document.write(st1[n][0]+"<br/>")中的st1[n][0]方式输出。
var infos = [
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']
];
for(var i = 0; i < infos.length; i++) {
if(infos[i][3] == "大一" && infos[i][1] == "女") {
document.write(infos[i][0] + infos[i][2] + "<br />");
}
}
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题