大明猩L
2015-10-11 22:37
var arr1 = []; //新建一个数组的原因是不和infos重合吗?
var n = 0; //为什么要声明一个n变量,并且赋值为0?
for(var i=0;i<infos.length;i++){
if( infos[i][3] == "大一" ){ //infos[i][3]的含义是不是指“数组索引号i与3”?
arr1[n] = infos[i];
document.write(arr1[n]+"<br/>");
n=n+1;
}
}用注释写在语言里
全部js代码与注释如下
// 第一步把之前的数据写成一个数组的形式,定义变量为 infos
var infos = [ ['小A','女',21,'大一'], ['小B','男',23,'大三'],
['小C','男',24,'大四'], ['小D','女',21,'大一'],
['小E','女',22,'大四'], ['小F','男',21,'大一'],
['小G','女',22,'大二'], ['小H','女',20,'大三'],
['小I','女',20,'大一'], ['小J','男',20,'大三']];
var arr = []; // 定义一个数组
// 第一次筛选,找出都是大一的信息(数组arr1)
for(var i=0;i<infos.length;i++){
if( infos[i][3] == "大一" ){ // 筛选所有大一学生信息
arr.push(infos[i]); // 将其置于新数组
}
}
// 第二次筛选,找出都是女生的信息(并打印出来)
for(var i=0; i<arr.length;i++){
if(arr[i][1] == '女'){ // 筛选新数组中的所有女生
document.write(arr[i][0]+"<br/>"); // 打印姓名
}
}
infos[i][3] 是个二维数组, 你可以把它看作是个张Excel表格,其中i决定的是行,3则代表列,整个合起来指向一个单元格。需要注意的是在索引值默认都是从0开始的(这也是n的初始值为什么通常是0的原因),所以这里的3其实就是第4列。至于if中的条件,你需要分析观察infos二维数组内容结构。
infos二维数组看成表,则表示一个10行4列的表,其中每列依次表示为:姓名,性别,年龄,年级。理解这些,你就可以很清晰的知道infos[i][3]指获取年级。
若还不能理解,打开Excel表比划比划。不明白if 是你需要加强数组学习。有时候慢就是快……
if中的条件是指的什么意思呢
JavaScript进阶篇
469199 学习 · 22584 问题
相似问题