for内新数组循环赋值,for外无法显示,为何?已定义变量h,显示undefined,为何?
<!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 infos1=new Array();
var infos2=new Array();
for(var i=0,h=0;i<infos.length;i++)
{
for(var j=0;j<infos[0].length;j++)
{
if(infos[i][j]=='大一')
{
infos1[h]=infos[i];//这样赋值不可以吗?
document.write(infos1[h]+"<br>");
/* infos1.push(infos[i]);
document.write(infos1[h]+"<br>");//屏蔽infos1[h]=infos[i],下面句子中h显示undefined,怎么回事?*/
}
else
{
continue;
}
}
}
document.write(infos1+"<br>");//为什么显示不出这个数组?
document.write(infos1.length+"<br>"); //为什么结果显示为1?
//第二次筛选,找出都是女生的信息
for(var i=0,h=0;i<infos1.length;i++)
{
for(var j=0;j<infos1[0].length;j++)
{
if(infos1[i][j]=='女')
{
infos2[h]=infos1[i];
document.write(infos2[h][0]+"<br>");
}
else
{
continue;
}
}
}
</script>
</head>
<body>
</body>
</html>