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

来源:4-10 编程练习

慕仙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;
}

写回答 关注

4回答

  • codiv
    2017-10-25 12:08:56
    已采纳

    为啥搞那么复杂?

    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)

    这样不可以么?

    慕仙5237...

    应该可以把,不过那个foreach没学过。。。

    2017-10-27 14:53:28

    共 2 条回复 >

  • Molly喜
    2017-12-12 13:13:12

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

  • zjxjwxk
    2017-10-21 17:39:05

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

    慕仙5237...

    删掉那个啊

    2017-10-27 14:47:50

    共 1 条回复 >

  • 简V单
    2017-10-21 17:21:51

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


    慕仙5237...

    不对要2合一条件同时成立

    2017-10-27 14:49:00

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468743 学习 · 22132 问题

查看课程

相似问题