慕盖茨1197844
2018-12-12 09:07
只出现第一次筛选,第二次不出现;如果把第二次筛选的代码放到第一次前面,第二次筛选就会显示,同理第一次筛选就不显示这是什么情况
代码如下:
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
var infos=[['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(var i=0;i<=infos.length;i++){
if(infos[i][3]=="大一"){
document.write("大一:"+infos[i]+"<br>");
}
}
//第一次筛选,找出都是大一的信息
for(var j=0;j<=infos.length;j++){
if(infos[j][1]=="女"&&infos[j][3]=="大一"){
document.write("女:"+infos[j]+"<br>");
}
}
//第二次筛选,找出都是女生的信息
</script>
</head>
<body>
</body>
</html>
我知道你问题出在哪里了
你没有搞懂“.length”函数的用法;
这个函数infos.length =10 ,但是数组只有10位,而且再加上你的 “j=0和j<=10”那个for循环就会运行11次,也就是第11次不知道运行什么就会有错误
所有“j<infos.length”不能用小于等于号;
我的意思是他应该指出这个题的正解答案。。而不是只说循环的问题。。当然他说的没错。。但是你这个题目做出来的答案不对。。答案如果不对。。你就没理解这个题的目的
你被上面这位仁兄误导啦
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题