<!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,'大三'] ]; document.write("总人数: "+infos.length+"<br/><br/>"); //第一次筛选,找出都是大一的信息 var arr = []; var n = 0; for(var i=0;i<infos.length;i++){ if( infos[i][3] == "大一" ){ arr[n]= infos[i]; document.write(arr[n]+"<br/>"); n=n+1; } } document.write("大一总人数: "+arr.length+"<br/><br/>"); document.write("大一女生有: "+"<br/>"); //第二次筛选,找出都是女生的信息 for(var i=0;i<arr.length;i++){ //这里可以用switch if(arr[i][1]=='女') { document.write(arr[i][0]+"<br/>");} } </script> </head> <body> </body> </html>
其中我存在疑惑的是这一部分:
为什么句1,句2不能写成:
var arr = [][]; arr[n][]= infos[i][];
arr和infos都是二维数组,原写法意在将两个都当做一维数组,将一组值写入一个元素中;但是为什么我这样就把它当做二维数组写,会是错的,请问错在什么地方?
因为arr[n][]并不是一个变量,这样写没法赋值
实际上不带中括号的a才表示二维数组,二维数组之间赋值也该写成a=infos,只是已经偏离你的本意了。
你的意思大概是2处变成
for(var j=0;j<arr[n].length;j++){
arr[n][j]=infos[i][j];
}