问答详情
源自:4-10 编程练习

求指点.....

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>流程控制语句</title>

<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

var i;

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

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

     

      continue;

  }

   document.write(infos[i][3]+"<br/>"")

 }

 

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


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

  if(infos[i][1]!='女'){

      

      continue;

  }

  document.write(infos[i][1]+"<br/>")

 }

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

 

 

  

</script>

</head>

<body>

</body>

</html>


提问者:001122 2016-08-31 21:28

个回答

  • SilenceDean
    2016-08-31 22:25:46
    已采纳

    第1个问题,数组里面单个元素用’,‘分隔,像这样


    var infos=[
    ['小A','女',21,'大一'],
    ['小B','男',23,'大三'],
    ['小C','男',24,'大四'],
    ['小D','女',21,'大一'],
    ['小E','女',22,'大四'],
    ['小F','男',21,'大一'],
    ['小G','女',22,'大二'],
    ['小H','女',20,'大三'],
    ['小I','女',20,'大一'],
    ['小J','男',20,'大三']];

    然后是循环里的逻辑问题

    var i;
    for(i=0;i<=infos.length;i++){
      if(infos[i][3]!='大一'){
         
          continue;
      }
       document.write(infos[i][3]+"<br/>"")
     }
     
     //第一次筛选,找出都是大一的信息
    
    for(i=0;i<=infos.length;i++){
      if(infos[i][1]!='女'){
          
          continue;
      }
      document.write(infos[i][1]+"<br/>")
     }
     //第二次筛选,找出都是女生的信息

    你这里把documet.write放错位置了,即便是要将每次筛选的结果打印出来,也应该是把documet.write放在continue前面,你写的代码反而是将不满足的结果打印出来,这2个循环也没有实现筛选的功能


    这是直接判断2个条件的代码

    for(var i=0;i<infos.length;i++){
    if(infos[i][3]='大一'&&infos[i][1]='女'){
    document.write(infos[i]+"<br/>");
    }
    
    }


  • qq_乜许不懂_03883685
    2016-08-31 22:56:54

    参考7-21你就明白了

  • EvanC
    2016-08-31 22:30:36

    代码改成下图即可

    错误原因

    1、数组声明有误,可以复习一下3-7课和3-3课

    2、你把continue写在了你要执行的代码前面,在执行continue之后循环并不是接着往下运行,而是跳过这一次循环在这句“continue”之后的所有代码重新开始新的一轮循环

    3、前面理解错误if判断条件错误

    http://img.mukewang.com/57c6e9e700016b5004950478.jpg


  • imalwayshere
    2016-08-31 22:25:42

    不用两次筛选,一次就能搞定:

     for(var i=0; i<10; ++i) {
        if("大一"==infos[i][3] && "女"==infos[i][1]){
            document.write(infos[i]+"<br/>");
        }
     }


  • 精慕门0959526
    2016-08-31 22:23:05

    数组内部不要分号