墨以丶不思量
2017-03-10 17:15
<!DOCTYPE HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流程控制语句</title> <script type="text/javascript"> //第一步把之前的数据写成一个数组的形式,定义变量为 infos var infos = new Array(); infos=[ ['小A','女',21,'大一'], ['小B','男',23,'大三'], ['小C','男',24,'大四'], ['小D','女',21,'大一'], ['小E','女',22,'大四'], ['小F','男',21,'大一'], ['小G','女',22,'大二'], ['小H','女',20,'大三'], ['小I','女',20,'大一'], ['小J','男',20,'大三'], ]; //第一次筛选,找出都是大一的信息 // document.write("1.输出都是大一的所有信息:"+"<br/>"); // for(i=0;i<=infos.length;i++) //{ // var j=3; // if(infos[i][j]=="大一") // document.write(infos[i] + "<br/>"); // } //第二次筛选,找出都是女生的信息 //function num2{ document.write("2.打印出都是大一女生姓名:"); for(i=0;i<=infos.length;i++) { var j=3; if(infos[i][j]=="大一"){ var newarr = new Array(); newarr.push(infos[i]); for(x=0;x<newarr.length;x++){ var y=1; if(newarr[x][y]=="女"){ document.write(newarr[x][0]+"<br/>"); } } } } //} </script> </head> <body> </body> </html>
问题是这样的,我循环找到了大一的学生,想把找到的大一学生放进一个新数组,然后再从新数组里面全是女的学生名字,求解答
嗯,我看了一下。你的代码是正确的。我当时是看到你的题目里有个错别字,没有理解清楚你的意思。然后看你创建了一个newArray在循环,以为你可能循环错了。你最后上传的代码比之前的好。
<!DOCTYPE HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流程控制语句</title> <script type="text/javascript"> //第一步把之前的数据写成一个数组的形式,定义变量为 infos infos=[ ['小A','女',21,'大一'], ['小B','男',23,'大三'], ['小C','男',24,'大四'], ['小D','女',21,'大一'], ['小E','女',22,'大四'], ['小F','男',21,'大一'], ['小G','女',22,'大二'], ['小H','女',20,'大三'], ['小I','女',20,'大一'], ['小J','男',20,'大三'], ]; var newarr = new Array(); var x=0; //第一次筛选,找出都是大一的信息 document.write("1.筛选出是大一学生的所有信息:<br/>"); for(i=0;i<infos.length;i++) { var j=3; if(infos[i][j]=="大一"){ newarr[x]=infos[i]; x++; document.write(infos[i] + "<br/>"); } } //第二次筛选,找出都是女生的信息 document.write("<br/>2.筛选出是大一的女生姓名:<br/>"); for(x=0;x<newarr.length;x++) { var y=1; if(newarr[x][y]== "女") document.write(newarr[x][0] + "<br/>"); } </script> </head> <body> </body> </html>
这是拆分后的代码。应该看上去没这么乱,=。=
<!DOCTYPE HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流程控制语句</title> <script type="text/javascript"> //第一步把之前的数据写成一个数组的形式,定义变量为 infos var infos = new Array(); infos=[ ['小A','女',21,'大一'], ['小B','男',23,'大三'], ['小C','男',24,'大四'], ['小D','女',21,'大一'], ['小E','女',22,'大四'], ['小F','男',21,'大一'], ['小G','女',22,'大二'], ['小H','女',20,'大三'], ['小I','女',20,'大一'], ['小J','男',20,'大三'], ]; //第一次筛选,找出都是大一的信息 document.write("1.输出都是大一的所有信息:"+"<br/>"); for(i=0;i<infos.length;i++) { var j=3; if(infos[i][j]=="大一") document.write(infos[i] + "<br/>"); } //第二次筛选,找出都是女生的信息 //function num2{ document.write("<br/>2.打印出都是大一女生姓名:<br/>"); for(i=0;i<infos.length;i++) { var j=3; if(infos[i][j]=="大一"){ var newarr = new Array(); newarr.push(infos[i]); for(x=0;x<newarr.length;x++){ var y=1; if(newarr[x][y]=="女"){ document.write(newarr[x][0]+"<br/>"); } } } } //} </script> </head> <body> </body> </html>
这是修改后的代码。
你这样写逻辑肯定是不对的,你需要等大一学生统计完了(for大一学生执行完了之后),才能统计大一的女的。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题