为什么我第二次筛选只得到一个结果,为什么

  var infos=[

     ['小A','女','21','大一'],                                                          

     ['小B','男','23','大三'],

     ['小C','男','24','大四'],

     ['小D','女','21','大一'],

     ['小E','女','22','大四'],

     ['小F','男','21','大一'],

     ['小G','女','22','大二'],

     ['小H','女','20','大三'],

     ['小I','女','20','大一'],

     ['小J','男','20','大三']

     ]

 

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

 var any=new Array();

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

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

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

         any=[infos[i]];

     }

 }

 document.write("第二次筛选:"+"<br>")

 for(var n=0;n<any.length;n++) {

    if(any[n][1]=="女"){

        document.write(any[n])

    }

 }

小A,女,21,大一
小D,女,21,大一
小F,男,21,大一
小I,女,20,大一
第二次筛选:
小I,女,20,大一

qq_小辉_4
浏览 1230回答 1
1回答

WingMeng

原因是你第一次筛选时:var any=new Array();  for(var i=0;i<infos.length;i++){      if(infos[i][3]=="大一"){          document.write(infos[i]+"<br>")          any=[infos[i]];      }  }这样写的话,any 这个数组在每次 for 循环进 if 语句块时都会被重新赋值一次,当 for 循环结束后,它的值就是最后一次匹配赋值的结果,即 any = ['小I','女','20','大一']。想要实现预期效果,请使用 push 方法:if(infos[i][3]=="大一"){     document.write(infos[i]+"<br>")     any.push(infos[i]); }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript