慕先生8467654
2018-12-11 16:22
<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 i;
for(i=0;i<infos.length;i++;)
{
if(infos[i][3]=='大一’){
document.write("我是"+infos[i][3]+"的学生"+'<br>');
}
//第二次筛选,找出都是女生的信息
if(infos[i][1]=='女') {
document.write("我是"+infos[i][1]+'<br>');
}
}
</script>
给你个参考
<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[1]);
//第一次筛选,找出都是大一的信息
for(i=0;i<infos.length;i++)
{
if(infos[i][3]=="大一")
{
document.write("第一次筛选大一数据:"+infos[i] +"<br/>");
}
}
//第二次筛选,找出都是女生的信息
for(i=0;i<infos.length;i++)
{
if(infos[i][3]=="大一"&& infos[i][1]=="女")
{
document.write("第二次筛选数据:"+infos[i][0] +"<br/>");
}
}
</script>
首先你在for循环条件中末尾多了一个分号“;“ if判断为大一的地方用中文状态的输入法输出了‘
其次,在这道题目中,应该用双重if判断。你在这里写的两个if判断只是把是大一的人找出然后再把是女生的人找出,如果把第二个if判断放在第一个if判断中,那么中间就会加一个并且,是大一的并且是女生的。
根据老夫30年代码的观写经验来看,随便一瞟发了很大的漏洞。
首先你这是一个二维数组,你的第一个循环 for(i=0;i<infos.length;i++;) 只把['小A','女',21,'大一'],['小B','男',23,'大三'],['小C','男',24,'大四']...等等,这些组循环出来了。。并没有把每一个大组里面的小组值取到。。
所以你应该用双层循环:
for( var i=0; i<infos.length; i++ ){
for( var j=0; j<infos[i].length; j++ ){
然后这个里面就是你写的if那些判断了。。
}
}
去试着写一下吧。。有不懂再问我。。望采纳
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题