大佬帮我看看对不对,小白请走远一些

来源:4-10 编程练习

二十多岁的老王

2020-06-01 15:38

<!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','大二'],


        ['F','女','20','大三'],


    ] 

 //第一次筛选,找出都是大一的信息

 

 

 for (i = 0, i< info.length, i++){

    if (info[i][3] == "大一")  {

        document.write(info[i])

    }

 }

 

 

 //第二次筛选,找出都是女生的信息

 

  for (i = 0, i< info.length, i++){

    if (info[i][3] == "大一")  {

        if (info[i][1] == "男"){

            document.write(info[i])

        }

    }

 }

  

</script>

</head>

<body>

</body>

</html>


写回答 关注

7回答

  • 几盎丶
    2020-06-01 16:41:49
    已采纳

    逻辑没错,for写错了里面是‘;’

    优化下,你可以直接把第一次筛选后的数据放进一个数组,第二次直接筛选新数组比较好

    var dayi=[];

    在document.write(info[i]);下再加一行

    dayi.push(info[i]);

    不是大佬,互相交流

    二十多岁的老...

    嗯,你说的是对的,我是懒了,直接复制第一次筛选的,后面加点逻辑

    2020-06-01 20:17:39

    共 1 条回复 >

  • 1327为你
    2020-08-03 00:00:29

    不是我说,先学JAVA再学python会好很多

  • 阳火锅
    2020-06-09 13:44:38

     var aa = info.filter(item => item[3] =='大一' && item[1] =='女')

      for(let i=0;i<aa.length;i++){

        document.write(aa[i][0])

     }


    已老夫30年编程经验,3行代码搞定你这个需求


  • Daemon丶小白熊
    2020-06-02 16:29:14

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

     //第一次筛选,找出都是大一的信息

     var info_first = new Array()

     for(let i = 0 ;i<infos.length;i++){

         if(infos[i][3] == '大一'){

             info_first.push(infos[i]+"<br>")

         }

     }

     document.write(info_first+'<br>')


     //第二次筛选,找出都是女生的信息

     var info_second = new Array()

    for(let j = 0;j<infos.length;j++){

        if(infos[j][1] == '女' && infos[j][3]=='大一'){

            info_second.push(infos[j]+"<br>")

        }

    }

     document.write(info_second)

    </script>


    第二个循环条件用“&&”来判断更合适吧

  • 二十多岁的老王
    2020-06-01 20:16:18

    写python写习惯了,我真不喜欢js这种语法,我卡卡

  • Angelina丶
    2020-06-01 16:37:19

    <!DOCTYPE html>

    <html lang="en">

    <head>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>筛选数据</title>

        <script>

            var infos = [

                ['小A','女',21,'大一'], 

                ['小B','男',23,'大三'],

                ['小C','男',24,'大四'], 

                ['小D','女',21,'大一'],

                ['小E','女',22,'大四'], 

                ['小F','男',21,'大一'],

                ['小G','女',22,'大二'],

                ['小H','女',20,'大三'],

                ['小I','女',20,'大一'],

                ['小J','男',20,'大三']];

                //第一次筛选,找出都是大一的信息

                //switch写法

                for(i = 0 ;i < infos.length ; i++){

                    switch(infos[i][3]){

                        case '大一':

                        document.write('大一的学生有:'+infos[i]+'<br>');

                        break;

                    }

                };

                document.write('<hr>')

                //if写法

                for(i = 0;i<infos.length;i++){

                    for(j=0;j<infos[i][j].length;j++){

                        if(infos[i][3]=='大一'){

                            document.write('大一的学生有:'+infos[i]+'<br>')

                        }

                    }

                };

                document.write('<hr>')

                //第二次筛选上一步得到的数据,找出都是女生的信息

                for(i = 0 ;i < infos.length ; i++){

                    for(j = 0 ;j < infos[i][j].length ; j++){

                        if(infos[i][3] == '大一'&& infos[i][1]== '女'){

                            document.write('大一学生中的女生有:'+infos[i]+'<br>')

                        }

                    }

                };

        </script>

    </head>

    <body>

    </body>

    </html>


    Angeli... 回复二十多岁的老...

    嘿嘿,因为下面的提示说用switch和if,我就把两个都写了。我也觉得用不上switch

    2020-06-02 17:05:41

    共 3 条回复 >

  • Angelina丶
    2020-06-01 16:36:22

    不说别的,最下面为什么是男。

     for (i = 0, i< info.length, i++),这个里面应该是" ; "不是" , "

    你没试着运行一下吗?

    运行不出来,那就代表有问题的。

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题