為什么寫dayi[i]=infos[i]會出錯
//第一次篩選,找出都是大一的信息
var dayi = new Array();
for(var i=0;i<infos.length;i++){
if(infos[i][3]=='大一'){
dayi[i]=infos[i];
}
}
//第二次篩選,找出都是女生的信息
for(var i=0;i<dayi.length;i++){
switch(dayi[i][1]){
case '女':
document.write(dayi[i][0]+"<br/>");
}
}
一開始是這樣寫的,可是只會輸出一個(gè)小A,在console里發(fā)現(xiàn)dayi.length是9,而且除了dayi[0]其他全是undefined,為什么會這樣啊Q A Q
2017-09-12
不好意思,你說的對。dayi.length == 9 說明你的 dayi[9] = infos[9]的,至于為什么只會出現(xiàn)day[0]有數(shù)據(jù),要看看你的數(shù)據(jù)是怎么寫的了。說實(shí)話,你可以讓dayi的下標(biāo)自己增加不就可以了嗎,不要用i表示。
2017-09-11
i時(shí)隨著循環(huán)增加的,因此dayi[i]中的i也會改變,當(dāng)篩選不到時(shí),dayi[i]中就不會賦值,然而i繼續(xù)增加,因此這些沒有被賦值的dayi[i]里面存儲的就是undefined(只給了聲明沒有賦值)