針對非明確索引的二維數組篩選方法解決方案。
//第一步把之前的數據寫成一個數組的形式,定義變量為 infos
?var infos=[
? ? ?['小A','女',21,'大一'],
? ? ?['小B','男',23,'大一'],
? ? ?['小C','男',24,'大四'],
? ? ?['小D','女',21,'大一'],
? ? ?['小G','女',22,'大二'],
? ? ?['小H','女',20,'大三'],
? ? ?['小I','女',20,'大一'],
? ? ?['小J','男',20,'大三']
? ? ?];
?//為了展示效果,我把數組中的其中一個男生的學歷改為大一(原本是沒有的大一的男生)。
?var sx1=[];//新建數組存儲第一次篩選的結果
?
?//第一次篩選,找出都是大一的信息
?var len=infos.length;//得到每個一維數組長度;
?//console.log("一維數組的長度為:"+len);
?for(var i=0; i<len; i++){
var lenTow1=infos[i].length;//得到每個一維數組中所對應的二維數組長度;
//console.log("二維數組的長度為:"+lenTwo);
? ? for(var j=0; j<lenTow1; j++){
if(infos[i][j]=="大一"){//在每個對應的一維數組中篩選出為大一的學生
sx1.push(infos[i]);//將所有二維中為大一的數組添加到新的數組中
}
}
?}
?//第二次篩選,找出都是女生的信息
?var len2=sx1.length;//獲取篩選后的新的數組長度
?var endInfo="";//聲明變量,否則會undefined
?var xh=0;//排序用
?for(var q=0; q<len2; q++){//遍歷一維數組
var lenTow2=sx1[q].length;//獲取每個一維數組對應的二維數組的長度
//console.log("新的大一數組:"+sx1[q]);
for(var s=0; s<lenTow2; s++){//遍歷每個一維數組對應的二維數組
if(sx1[q][s]=="女"){//找出每個一維數組對應的二維數組里為“女”生的
? ? xh++;//重新排序;
endInfo+="大一女生信息("+xh+"):"+sx1[q]+"<br>";
//將該二維為女的對應的一維數組賦值給前面剛申明的變量
}
}
?}
?document.write(endInfo);//數據打印結合前面console.log()確認結果。
2020-11-27
對于明確的知道索引的解決方法就不闡述了,很多人都一部篩選了,這里主要是對非明確索引打亂的二維數組進行篩選的方法。