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

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

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


提问者:chingsalt 2016-04-09 00:34

个回答

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

    这样你再试一下?