为了账号安全,请及时绑定邮箱和手机立即绑定

2维数组求值http://www.imooc.com/code/1484

 我这个怎么输出没反应啊,麻烦各位帮我看看指错误在哪?然后告诉我正确的写法,输了都没有打印出来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;
}

正在回答

4 回答

为啥搞那么复杂?

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)

这样不可以么?

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

要用forxunhuan循环吧
2017-10-27 回复 有任何疑惑可以回复我~
#2

慕仙5237505 提问者

应该可以把,不过那个foreach没学过。。。
2017-10-27 回复 有任何疑惑可以回复我~

因为你二维数组j从o开始遍历,当j=0时,因为第一列都是姓名的数据,全部不等于“大一”这个要求,执行删掉这个数组。所以你的数组被你全删光了数据,怎么会有输出呢

0 回复 有任何疑惑可以回复我~

请问infos.splice(i,1);和switch(i in infos)的用意是?

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

删掉那个啊
2017-10-27 回复 有任何疑惑可以回复我~

<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>


0 回复 有任何疑惑可以回复我~
#1

zjxjwxk

女生是要筛选上一步得到的数据,也就是大一的女生才对,不是所有女生。
2017-10-21 回复 有任何疑惑可以回复我~
#2

慕仙5237505 提问者

不对要2合一条件同时成立
2017-10-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

2维数组求值http://www.imooc.com/code/1484

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号