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

求指点.....

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


正在回答

5 回答

第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/>");
}

}


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

001122 提问者

非常感谢!
2016-08-31 回复 有任何疑惑可以回复我~
#2

SilenceDean

if(infos[i][3]=='大一'&&infos[i][1]=='女') 漏打个=
2016-08-31 回复 有任何疑惑可以回复我~
#3

SilenceDean

if(infos[i][3]=='大一'&&infos[i][1]=='女') 漏打个=
2016-08-31 回复 有任何疑惑可以回复我~

参考7-21你就明白了

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

代码改成下图即可

错误原因

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

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

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

http://img1.sycdn.imooc.com//57c6e9e700016b5004950478.jpg


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

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

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


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

数组内部不要分号

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468061    人
  • 解答问题       21891    个

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

进入课程

求指点.....

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