在控制台可以看到数组infos2,但是不显示。//第一步把之前的数据写成一个数组的形式,定义变量为 infos var infos = [ ['小A','女',21,'大一'], ['小B','男',23,'大三'], ['小C','男',24,'大四'], ['小C','男',24,'大四'], ['小D','女',21,'大一'], ['小E','女',22,'大四'], ['小F','男',21,'大一'], ['小G','女',22,'大二'], ['小H','女',20,'大三'], ['小I','女',20,'大一'], ['小J','男',20,'大三']]; //第一次筛选,找出都是大一的信息 var infos2 = new Array; for (var i = 0;i<=infos.length;i++){ if(infos[i][3]==="大一"){ document.write(infos[i]+"<br>"); infos2.push(infos[i]); } } //第二次筛选,找出都是女生的信息 for (var j =0;j<=infos2.length;j++){ if(infos2[j][1]==="女"){ document.write(infos2[j]+"<br>"); } }
3 回答
已采纳
cnyballk
TA贡献148条经验 获得超93个赞
循环时数组下标越界,你多琢磨琢磨,下标是从0开始 长度是1开始 最后那个的下标是不是长度减一,所以应该<x.length或者<=x.length-1
慕慕6468460
TA贡献1条经验 获得超0个赞
1.题主在循环是数组下标相当于越界了;
2.在判断女生的时候,infos2内的数组存放的只有大一的女生
综上代码修改应如下所示:
//第一次筛选,找出都是大一的信息
var infos2 = new Array;
for (var i = 0;i<infos.length;i++){
if(infos[i][3]==="大一"){
document.write(infos[i]+"<br>");
infos2.push(infos[i]);
}
}
document.write("<hr>");
for (var j = 0;i<infos2.length;i++){
if(infos2[j][1]==="女"){
document.write(infos2[j]+"<br>");
}
}
__innocence
TA贡献313条经验 获得超208个赞
for (var i = 0;i<=infos.length;i++) for (var j =0;j<=infos2.length;j++)
--->
for (var i = 0;i<infos.length;i++) for (var j =0;j<infos2.length;j++)
添加回答
举报
0/150
提交
取消