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

用switch,哪里错了

		var infos=[['小A','女',21,'大一'],  ['小B','男',23,'大三'],
    ['小C','男',24,'大四'],  ['小D','女',21,'大一'],
    ['小E','女',22,'大四'],  ['小F','男',21,'大一'],
    ['小G','女',22,'大二'],  ['小H','女',20,'大三'],
    ['小I','女',20,'大一'],  ['小J','男',20,'大三']];
    for(var i=0;i<infos.length;i++){
    	var n = 0;
    	var arr=[];
    switch(infos[i][3]){
    	case "大一":
    	  arr[n]=infos[i][3];
    	  break;
    	  default:
    	  document.write("<br>");
    	  n++;
    }}
    for(var j=0;j <arr.length;j++){
     	switch(arr[j][1]){
     		case "女":
     		document.write(arr[j][0]);
     		break;
     		default:
    	    document.write("<br>");
     	}
    }


正在回答

3 回答

<!DOCTYPE  HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制语句</title>

</head>
<body>
<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,'大三']];
     var n = 0; var arr=[];
    for(var i=0;i<infos.length;i++){
       
       
    switch(infos[i][3]){
        case "大一":
          arr[n]=infos[i];
          n++;
          console.log(n);
          break;
          default:
          document.write("<br>");
  
         
    }};
    console.log(arr.length);
    for(var j=0;j <arr.length;j++){
       switch(arr[j][1]){
           case '女':
           document.write(arr[j][0]+"<br>");
           break;
           default:
            document.write("<br>");
          
       }
    }

  
</script>
</body>
</html>


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

jojo

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

问题还是蛮多的,例如后面你想再次判断arr[j][1],那么就要给arr赋值的时候也是一个二维数组,arr[n]=infos[i];例如这个,而且我觉得你的n++可能放的位置不对,会影响arr的数组的长度。n和arr都需要在循环外定义,不然每次都会重新定义一次,相当与重新初始化了

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

慕慕4512663 提问者

请问为什么n++要放在这里,并且n和arr的定义要在循环外,另外console那句是什么意思啊
2017-05-28 回复 有任何疑惑可以回复我~
#2

慕勒7123956 回复 慕慕4512663 提问者

因为只有符合条件的元素才能放进arr数组啊,不符合的话n就不变,n和arr的定义要在循环外,是因为每次运行循环,都会覆盖你之前的数字,你的n就会一直是1,console.log(),那个是在浏览器里面调试的,最好还是看控制台,有错误的话还能找到
2017-05-28 回复 有任何疑惑可以回复我~
#3

慕慕4512663 提问者 回复 慕勒7123956

谢谢啦
2017-05-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

用switch,哪里错了

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