未來Miral
2016-10-24 22:14
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var info = [
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']
];
var i=0; var infos=new Array;
document.write('大一学生为:'+'<br>');
//第一次筛选,找出都是大一的信息
for (i=0;i<10;i++){
if(info[i][3]=='大一'){
document.write(info[i]+'<br>');
infos[i]=info[i]}
}
//第二次筛选,找出都是女生
document.write('女:'+'<br>');
for(i=0;i<10;i++){
if(infos[i][1]=='女'){
document.write(infos[i]+'<br>');}
}
</script>
</head>
<body>
</body>
</html>
你的新定义数组infos 对应的是n 而不是i,所以你的 第一个var i=0 是不对的,应该初始化var n=0。
然后在第一个if语句里面应该是
if(info[i][3]=='大一')
{
document.write(info[i]+'<br>');
infos[n]=info[i];
n++
}
完整修改后为:
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var info = [
['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']
];
var n=0;
var infos=new Array();
document.write('大一学生为:'+'<br>');
//第一次筛选,找出都是大一的信息
for (i=0;i<info.length;i++)
{
if(info[i][3]=='大一')
{
document.write(info[i]+'<br>');
infos[n]=info[i];
n++
}
}
//第二次筛选,找出都是女生
document.write('女:'+'<br>');
for(i=0;i<infos.length;i++)
{
if(infos[i][1]=='女')
{
document.write(infos[i]+'<br>');
}
}
</script>
</head>
<body>
</body>
</html>
你只要把infos[i]中的i换成其他变量,就能解决问题了!
new Array();你少了括号
首先你 infos[i]=info[i]后面少了分号,而且这语句已经赋值给了infos[i],所以会导致后面的if(infos[i][1]=='女')出错!
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题