代碼運行不粗來,不知道是哪里出了問題,求指教
<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制語句</title>
<script type="text/javascript">
?//第一步把之前的數(shù)據(jù)寫成一個數(shù)組的形式,定義變量為 infos
?var infos=new Array[['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],['小E','女','22','大四'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],['小I','女','20','大一'],['小J','男','20','大三']];
?
?
?//第一次篩選,找出都是大一的信息
?for(var i=0;i<infos.length;i++){
? ? ?for(var j=0;j<4;j++){
? ? ? ? ?if(infos[i][3]=="大一") document.write(infos[i][0]+"<br/>");
? ? ?}
? ? ?}
??
?//第二次篩選,找出都是女生的信息
?for(var i=0;i<infos.length;i++){
? ? ?for(var j=0;j<4;j++){
? ? ? ? ?if(infos[i][1]=="女") document.write(infos[i][0]+"<br/>");
? ? ?}
? ? ?}
?
??
</script>
</head>
<body>
</body>
</html>
2015-06-28
<html>
? ?<head>
? ?<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
? ?<title>編程練習(xí)</title>
? ?<script type="text/javascript">
? ? ? var myarr=[['小A','女','21','大一'],['小B','男','23','大三'],
['小C','男','24','大四'],['小D','女','21','大一'],
? ? ? ? ? ? ? ? ?['小E','女','22','大四'],['小F','男','21','大一'],
? ? ? ? ? ? ? ? ?['小G','女','22','大二'],['小H','女','20','大三'],
? ? ? ? ? ? ? ? ?['小I','女','20','大一'],['小J','男','20','大三']];
? ? ? for(var i=0;i<10;i++)
? ? ? {
? ? ? ? ?if(myarr[i][1]=="女" && myarr[i][3]=="大一")
? ? ? ? ? ? ? ?document.write(myarr[i][0]+"<br/>");
? ? ? ? ??
? ? ? ?}
? ?</script>
? ?</head>
? ?<body>
? ?</body>
</html>
2015-06-19
樓上正解。注釋把第一次篩選和第二次分開了。
?
所以我建議把數(shù)組賦值出來。
//第一步把之前的數(shù)據(jù)寫成一個數(shù)組的形式,定義變量為 infos
??? var infos = [['小A', '女', 21, '大一'], ['小B', '男', 23, '大三'], ['小C', '男', 24, '大四'], ['小D', '女', 21, '大一'], ['小E', '女', 22, '大四'], ['小F', '男', 21, '大一'], ['小G', '女', 22, '大二'], ['小H', '女', 20, '大三'], ['小I', '女', 20, '大一'], ['小J', '男', 20, '大三']]
??? //第一次篩選,找出都是大一的信息
??? var dayi = new Array();
??? var x = 0;
??? document.write('first:<br/>');
??? for (var i = 0; i < infos.length; i++) {
??????? if (infos[i][3] == '大一') {
??????????? dayi[x] = infos[i];
??????????? x++;
??????????? document.write(infos[i]+'<br/>');
??????? }
??? }
document.write('second:<br/>');
??? //第二次篩選,找出都是大一女生的信息
??? var dayinv = new Array();
??? var y = 0;
??? for (var j = 0; j < dayi.length; j++) {
??????? if (dayi[j][1] == '女') {
??????????? dayinv[y] = dayi[j];
??????????? y++;
??????????? document.write(dayi[j] + '<br/>');
??????? }
??? }
2015-06-19
數(shù)組定義錯了,數(shù)組賦值有兩種方式:一種是var infos=new Array();一種是var infos=[];您這樣兩種結(jié)合是不行的。。。
解決辦法:
要么把最外層的中括號改為小括號,像這樣var infos=new Array(['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],['小E','女','22','大四'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],['小I','女','20','大一'],['小J','男','20','大三']);
要么去掉new Array,像這樣var infos=[['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],['小E','女','22','大四'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],['小I','女','20','大一'],['小J','男','20','大三']]
改好數(shù)組后可以運行,但結(jié)果不對,因為您的循環(huán)??for(var j=0;j<4;j++)導(dǎo)致的,這個循環(huán)的作用是什么?多余了。建議捋一捋循環(huán)的過程,比如:以您的第一次篩選為例,當(dāng)i=0時進(jìn)入循環(huán),然后開始j的循環(huán),j=0時打印出符合條件infos[i][3]=="大一"的學(xué)生名字,j=1,2,3時又重復(fù)打印三次,所以結(jié)果看到4個小A之類的。我也只會講到這么多了,呵呵,這個還是要自己慢慢去理解了,加油
第三點不是說您代碼有錯,只是順便提一提,第二次篩選是在第一次篩選后的基礎(chǔ)上進(jìn)行的
for(i=0;i<infos.length;i++){
? ? if(infos[i][3]=='大一'){//第一次篩選,找出都是大一的信息 ? ?
? ? ? ? if(infos[i][1]=='女'){//第二次篩選,找出都是女生的信息 ??
? ? ? ? document.write(infos[i][0]);
? ? ? ? }
? ? }
}
有不對的地方,請其他同學(xué)指教
2015-06-19
Array后面用()這個括號包含一下