 
		慕仙5237505
2017-10-21 16:45
我这个怎么输出没反应啊,麻烦各位帮我看看指错误在哪?然后告诉我正确的写法,输了都没有打印出来http://www.imooc.com/code/1484
任务:
第一步: 把这些数据组成一个数组,方便我们之后操作哦。
提示: 使用二维数组。
第二步: 筛选数据吧,首先找出都是大一的所有信息 ;
第三步: 最后再一次筛选上一步得到的数据,打印出都是女生的姓名 ;
提示: 可以用switch 或 if 语句进行筛选。
 var infos = [
    ['小A','女',21,'大一'],
    ['小B','男',23,'大三'],
    ['小C','男',24,'大四'],
    ['小C','男',24,'大四'],
    ['小D','女',21,'大一'],
    ['小E','女',22,'大四'],
    ['小F','男',21,'大一'],
    ['小G','女',22,'大二'],
    ['小H','女',20,'大三'],
    ['小I','女',20,'大一'],
    ['小J','男',20,'大三']
];
var len = infos.length;
for(var i=0; i<len; i++){
    var f1 = infos[i];
    for(var j=0; j<f1.length; j++){
        if(f1[j]!='大一'){
           infos.splice(i,1);
           break;
        }
    }
}
switch(i in infos){
    case '女':
        document.write(info[0]);
    default:
        continue;
}
 
				为啥搞那么复杂?
var info = [
        ['小A', '女', 21, '大一'],
        ['小B', '男', 23, '大三'],
        ['小C', '男', 24, '大四'],
        ['小D', '女', 21, '大一'],
        ['小E', '女', 22, '大四'],
        ['小F', '男', 21, '大一'],
        ['小G', '女', 22, '大二'],
        ['小H', '女', 20, '大三'],
        ['小I', '女', 20, '大一'],
        ['小J', '男', 20, '大三']
    ]
var res = []
info.forEach(function (item) {
    if (item[1] === '女' && item[3] === '大一') {
        res.push(item[0])
    }
})
console.log(res)
这样不可以么?
 
				因为你二维数组j从o开始遍历,当j=0时,因为第一列都是姓名的数据,全部不等于“大一”这个要求,执行删掉这个数组。所以你的数组被你全删光了数据,怎么会有输出呢
 
				请问infos.splice(i,1);和switch(i in infos)的用意是?
 
				<script type="text/javascript">
var infos = [ ['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']];
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
for(var i=0;i<10;i++){
if(infos[i][3]=='大一'){
document.write("大一学生为:"+infos[i][0]+"<br>");
}
}
//第一次筛选,找出都是大一的信息
for(var i=0;i<10;i++){
if(infos[i][1]=='女'){
document.write("其中女生为:"+infos[i][0]+"<br>");
}
}
//第二次筛选,找出都是女生的信息
</script>
JavaScript进阶篇
469067 学习 · 22582 问题
相似问题