var infos=[['小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++){ var n = 0; var arr=[]; switch(infos[i][3]){ case "大一": arr[n]=infos[i][3]; break; default: document.write("<br>"); n++; }} for(var j=0;j <arr.length;j++){ switch(arr[j][1]){ case "女": document.write(arr[j][0]); break; default: document.write("<br>"); } }
<!DOCTYPE HTML> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>流程控制语句</title> </head> <body> <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,'大三']]; var n = 0; var arr=[]; for(var i=0;i<infos.length;i++){ switch(infos[i][3]){ case "大一": arr[n]=infos[i]; n++; console.log(n); break; default: document.write("<br>"); }}; console.log(arr.length); for(var j=0;j <arr.length;j++){ switch(arr[j][1]){ case '女': document.write(arr[j][0]+"<br>"); break; default: document.write("<br>"); } } </script> </body> </html>
jojo
问题还是蛮多的,例如后面你想再次判断arr[j][1],那么就要给arr赋值的时候也是一个二维数组,arr[n]=infos[i];例如这个,而且我觉得你的n++可能放的位置不对,会影响arr的数组的长度。n和arr都需要在循环外定义,不然每次都会重新定义一次,相当与重新初始化了