<!DOCTYPE HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流程控制语句</title> <script type="text/javascript"> //第一步把之前的数据写成一个数组的形式,定义变量为 infos var infos=[["小A","女",21,"大一"],["小B","男",23,"大三"],["小C","男",24,"大四"],["小D","女",21,"大一"], ["小E","女",22,"大四"],["小F","男",21,"大一"],["小G","女",22,"大二"],["小H","女",20,"大三"], ["小I","女",20,"大一"],["小J","男",20,"大三"]]; //第一次筛选,找出都是大一的信息 var infos2=new Array(5); var a=0; var b=0; for(var i=0;i<10;i++){ if(infos[i][3]=="大一"){ infos2[a]=infos[i]; a++; } } //第二次筛选,找出都是女生的信息 var infos3=new Array(3); for(var j=0;j<infos2.length;j++){ if(infos2[j][1]=="女"){ infos3[b]=infos2[j]; b++; } } document.write(infos3); </script> </head> <body> </body> </html>
我试了下如果最后一个if语句中换成document.write(infos2[j])的话是对的,不知道为什么按上面所写的会出错;
有点杂耍了。。。其实很多不用写的。。。你这出现的问题是数组infos2给多了个位置,在for循环的时候,当他循环到空值时会误以为你没有定义。。。还有哥们,你是学JAVA过来学JS的吧?不然一般人不会先定义数组的大小。。。
infos[i][3]=="大一 "中的3什么意思啊
一定要清楚你写的每一句代码,计算机都是在怎么读取和处理这句代码的,而不是你觉得该怎么处理的。当然这需要很长时间的积累;
还要多考虑程序的适用性和严谨性,要多方面的考虑程序是否能够更方便地使用。
比如你这个程序,假设是一个成千上万组的数据,那么该用什么样的思想来处理呢?难道还在程序里填写对应的数据?那真是难以想象。
n你怎么复杂花了