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

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

<!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 回答

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

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

var dayi=[];

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

dayi.push(info[i]);

不是大佬,互相交流

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

二十多岁的老王 提问者

嗯,你说的是对的,我是懒了,直接复制第一次筛选的,后面加点逻辑
2020-06-01 回复 有任何疑惑可以回复我~

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

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

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

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

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

 }


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


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

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


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

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

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

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

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


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

二十多岁的老王 提问者

不是我说话难听,你写这种遍历两次的复杂度就有问题了,说实话很low
2020-06-01 回复 有任何疑惑可以回复我~
#2

二十多岁的老王 提问者

swich 语句不是这种简单情况下用的,if else 足矣了
2020-06-01 回复 有任何疑惑可以回复我~
#3

Angelina丶 回复 二十多岁的老王 提问者

嘿嘿,因为下面的提示说用switch和if,我就把两个都写了。我也觉得用不上switch
2020-06-02 回复 有任何疑惑可以回复我~

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

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

你没试着运行一下吗?

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

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

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信