为什么不能直接arr[[i]=infos[i]

来源:4-10 编程练习

chingsalt

2016-04-09 00:34

  var arr = [];
   for(var i=0;i<infos.length;i++){ 
        if( infos[i][3] == "大一" ){  
           arr[i] = infos[i];
            document.write(arr[i]+"<br/>");
           
            
        }  
   }
   这样写 等第二次筛选的时候 只能输出一名女生 但实际上有三名 请问是为什么


写回答 关注

2回答

  • SimpleDog
    2016-04-12 02:32:07

    你试试这样 我一开始也没有弄懂为什么错的 后来的依此输出输出数组的length发现的错误

    var arr=[];

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

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

               arr[i]=infos[i];

               if(arr[i][1]=="女"){         

                   document.write(arr[i]+"<br/>");}

            }

        } 

    当你在用第一个条件判断并获取的数据 就应该在当前的循环中再去判断 如果像你那样分开两次判断 它取到的length是不一样的

  • cyuamber
    2016-04-09 01:25:43

    我试了你的代码,是可以的啊,你怎么写的啊?

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

    这样你再试一下?

    chings...

    我下半部分是写 for(var i=0;i<arr.length;i++){ //这里可以用switch if(arr[i][1]=="女") { document.write(arr[i]+"<br/>");} }

    2016-04-10 23:08:13

    共 1 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题