为了账号安全,请及时绑定邮箱和手机立即绑定

为什么写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/>");

}

}

一开始是这样写的,可是只会输出一个小A,在console里发现dayi.length是9,而且除了dayi[0]其他全是undefined,为什么会这样啊Q A Q

正在回答

3 回答

不好意思,你说的对。dayi.length == 9 说明你的 dayi[9] = infos[9]的,至于为什么只会出现day[0]有数据,要看看你的数据是怎么写的了。说实话,你可以让dayi的下标自己增加不就可以了吗,不要用i表示。

0 回复 有任何疑惑可以回复我~
#1

积年 提问者

是的 我最后又声明了一个j作为dayi的下标然后让j在满足条件的时候j++问题就解决了,就是想不太明白为什么用i会出现这种情况OTZ
2017-09-12 回复 有任何疑惑可以回复我~

i时随着循环增加的,因此dayi[i]中的i也会改变,当筛选不到时,dayi[i]中就不会赋值,然而i继续增加,因此这些没有被赋值的dayi[i]里面存储的就是undefined(只给了声明没有赋值)

0 回复 有任何疑惑可以回复我~
#1

积年 提问者

感谢回答0 0可是按道理不满足条件的话if里的语句也不会运行啊,为什么dayi会被声明出来呢。。。
2017-09-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么写dayi[i]=infos[i]会出错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信