cesiya23
2015-10-18 16:20
请问这段代码为何无输出?二维数组不能这样赋值吗?
1、var dayi = new Array(); //正确
2、dayi[k] = new Array() //你在最后的循环里,将dayi的每个元素重新定义为array。就可以了。你试下。
var infos=
[ ['小A','女',21,'大一'], ['小B','男',23,'大三'],
['小C','男',24,'大四'], ['小D','女',21,'大一'],
['小E','女',22,'大四'], ['小F','男',21,'大一'],
['小G','女',22,'大二'], ['小H','女',20,'大三'],
['小I','女',20,'大一'], ['小J','男',20,'大三']
]
//第一次筛选,找出都是大一的信息
for(i=0;i<10;i++){
if(message[i][3]=='大一'){
if(message[i][1]=='女'){
document.write(message[i][0]);
}
}
}
document.write("大一学生的信息:<br>")
for (i=0;i<=9;i++) {
if(infos[i][3] == '大一'){
dayi[k] = infos[i];
document.write(dayi[k]+"<br>");
k++;
}; }
中间循环的那一段改成这段代码就可以了。
这样写太麻烦了,我把你的代码优化了一下,一个是找出全是女的信息,一个是找出全是大一的信息
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var infos = new Array();
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 j = 0;
document.write("大一女学生的信息:<br>")
for (i=0;i<=9;i++)
{
if(infos[i][3] == '大一' && infos[i][1] == "女")
{
dayi[j] = infos[i];
document.write(dayi[j]+"<br>");
j++;
};
}
document.write("大一学生的信息:<br>")
for (i=0;i<=9;i++)
{
if(infos[i][3] == '大一')
{
dayi[j] = infos[i];
document.write(dayi[j]+"<br>");
j++;
};
}
//第一次筛选,找出都是大一女生的信息
//第二次筛选,找出都是大一的信息
</script>
</head>
<body>
</body>
</html>
天啊撸,你的需求是要筛选出大一中的女生吗?
JavaScript进阶篇
469062 学习 · 22582 问题
相似问题