一切太突然3125650
2016-04-13 18:15
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
var infos=new Array[
['小A','女',21,'大一'],['小B','男',23,'大三'],
['小C','男',24,'大四'],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],
['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三'] ];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(i=0;i<=3;i++){
if([i][3]=="大一")
{document.write("是大一的人有"+[i][3]+"<br/>");}
//第一次筛选,找出都是大一的信息
if([i][2]=="女")
{document.write("是大一女生的名字"+[i][1]);}
//第二次筛选,找出都是女生的信息
}
</script>
</head>
<body>
</body>
</html>
你贴出来的这部分代码 没有for(){}的后大括号 没有终结 然后我说的i0 i1只是这么说 你书写还是要写成 infos[i][0] 这样才能定位到数组 不然你直接写[i][0]会找不到定位的数组的 所有的[i][0]前面都要加上infos 再试试吧 前期不要省略 所有的代码都要写完善了 注意我说的那些
var infos=[
['小A','女',21,'大一'],['小B','男',23,'大三'],
['小C','男',24,'大四'],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],
['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三'] ];
for(i=0;i<=infos.length;i++){
if(infos[i][3]=="大一")
{
document.write("是大一的人有"+infos[i][0]+"<br/>")
if(infos[i][1]=="女")
{
document.write("是大一女生的名字"+infos[i][0]+"<br/>");
}
}
}
这是正确代码 根据你最后发的改的 具体改动有
for()里面的判断 i<infos.length
第一个if()中 你判断对了 但是输出不对 输出的应该是名字 而不是infos[i][3] i3输出的是大几 i0输出的才是名字
第二个if()中 条件应该是 infos[i][1]=="女" 而不是i2 数组是从0开始的 所以是1而不是2
第二个if()中的输出 和上一个一样 应该输出名字i0 而不是性别i1 这个还是数组的下标问题 你可以再看看数组
你的两个if() 是在for中的两个{}{}中分开写的 这样会出现第一个输出所有大一的 第二个输出所有女生 并不是大一女生 应该放在一个{}中 这样输出的就是大一女生 如果觉得混乱可以把第一个if出来的结果放到一个新定义的数组 再用第二个if判断新数组的女生 比较麻烦而已
还是不可以诶
<title>流程控制语句</title>
<script type="text/javascript">
var infos=new Array[
['小A','女',21,'大一'],['小B','男',23,'大三'],
['小C','男',24,'大四'],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],
['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三'] ];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(i=0;i<=3;i++){
if(infos[i][3]=="大一")
{document.write("是大一的人有"+infos[i][3]+"<br/>");}
//第一次筛选,找出都是大一的信息
if(infos[i][2]=="女")
{document.write("是大一女生的名字"+infos[i][1]);}
//第二次筛选,找出都是女生的信息
}
</script>
你的判断语句 if([i][2]=="女") 应该if(infos[i][3]=="大一") 输出的时候也是这样的infos[i][3] 以上。
<!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(i=0;i<=infos.length;i++){
if([i][3]=="大一")
{document.write("是大一的人有"+[i][3]+"<br/>");}
//第一次筛选,找出都是大一的信息
if([i][2]=="女")
{document.write("是大一女生的名字"+[i][1]);}
//第二次筛选,找出都是女生的信息
}
</script>
</head>
<body>
</body>
</html>
还是不行诶,还要怎么改?
数组定义就开始错了吧,,直接赋值就不写new Array了吧,,还有只循环4次??for语句中间的条件改成i<=infos.length
<script type="text/javascript">
var infos=new Array[
['小A','女',21,'大一'],['小B','男',23,'大三'],
['小C','男',24,'大四'],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],
['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三'] ];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(i=0;i<=3;i++){
if([i][3]=="大一")
{document.write("是大一的人有"+infos[i][3]+"<br/>");}
//第一次筛选,找出都是大一的信息
if([i][1]=="女")
{document.write("是大一女生的名字"+infos[i][1]);}
//第二次筛选,找出都是女生的信息
}
</script>
这样改么,为什么还是没有显示,哪里还错了
几点错误:
document.write("是大一的人有"+[i][3]+"<br/>");几处if部分和输出部分,[i][3]错误,应该是infos[i][3]
if([i][2]=="女").性别信息的下表为1
要求既是大一又是女生的才输出,你的代码会输出:大一所有的人无论男女名字,是女生无论大几的学生名字
综上,几点错误
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题