請教,為什么要寫var j=0和j=j+1呢?
? 參考了一下答案,之前沒寫var j=0和j=j+1
var infos =?
?[
? ['小A','女',21,'大一'],
['小B','男',23,'大三'],
['小C','男',24,'大四'],
['小D','女',21,'大一'],
['小E','女',22,'大四'],
? ['小F','男',21,'大一'],
['小G','女',22,'大二'],
['小H','女',20,'大三'],
['小I','女',20,'大一'],
['小J','男',20,'大三']
? ];
var myarr=[];
var j=0
for(var i = 0, length1 = infos.length; i < length1; i++){
if(infos[i][3]=='大一'){
myarr[j]=infos[i];
j=j+1;
}
}
for(var j = 0, length2 = myarr.length; j < length2; j++){
if(myarr[j][1]=='女'){
document.write(myarr[j][0]);
}
}
請教,為什么要寫var j=0和j=j+1呢?
2016-12-20
聲明j是用來往myarr中添加找到的符合標準的數據的,j=0時,找到一個,就把myarr[0]賦值為符合的數據,然后j+1變成1,又找到一個,myarr[1]為新找到的數據,依次類推...。到最后,myarr中存的都是符合條件的數據。再打印出來就行了。
2016-12-20
代碼頂格。真是個壞習慣。
你沒明白代碼邏輯吧。先把infos里面的大一的抓出來,丟進數組myarr里。
再把myarr里女的名字輸出。myarr新下標可以動態添加數據。所以每加一個j++
如果只是為了輸出大一女的名字,代碼可簡化為:
如有問題請指正。
2016-12-20
?//第一步把之前的數據寫成一個數組的形式,定義變量為 infos
?var studentInfoArray = [['小A','女',21,'大一'],
?['小B','男',23,'大三'],['小C','男',24,'大四'],
?['小D','女',21,'大一'],['小E','女',22,'大四'],
?['小F','男',21,'大一'],['小G','女',22,'大二'],
?['小H','女',20,'大三'],['小I','女',20,'大一'],
?['小J','男',20,'大三']];
?var femaleArr = new Array(0);
?//第一次篩選,找出都是大一的信息
?for (i = 0; i < studentInfoArray.length; i++){
? ? if(studentInfoArray[i][3] == "大一"){
? ? ? ? var tempIndex = femaleArr.length;
? ? ? ? femaleArr[tempIndex] = studentInfoArray[i];
? ? }
?}
??
?//第二次篩選,找出都是女生的信息
?for (i = 0; i < femaleArr.length; i++) {
? ? ?if(femaleArr[i][1] == "女") {
? ? ? ? ?document.write(femaleArr[i][0] + "<br />");
? ? ?}
?}