var infos=[ ['小A','女','21','大一'], ['小B','男','23','大三'], ['小C','男','24','大四'], ['小D','女','21','大一'], ['小E','女','22','大四'], ['小F','男','21','大一'], ['小G','女','22','大二'], ['小H','女','20','大三'], ['小I','女','20','大一'], ['小J','男','20','大三'] ] var arr=new Array() n=0 for(var i=0;i<infos.length;i++){ if(infos[i][3]=="大一"){ arr[n]=infos[i] n++ //document.write(infos[i]+"<br>") document.write(arr[n]) //为什么这里输出的值是undefined } } document.write("第二次筛选"+"<br>") //第一次筛选,找出都是大一的信息for(var j=0;j<arr.length;j++){ if(arr[j][1]=="女"){ document.write(arr[j][0]+"<br>") }}undefinedundefinedundefinedundefined第二次筛选小A小D小I
2 回答
已采纳
LiuYina
TA贡献10条经验 获得超1个赞
n+1 和 n++ 可以说是等价的,模拟一下,
假设这时在for循环中 i=0,n=0 arr[n]=infos[i]; //arr[0]=infos[0] n++; //这时n=0+1=1 document.write(arr[n]); //所以此时输出的是arr[1],而arr[1]里面却没有内容,所以输出undefined
慕的地6079101
TA贡献3593条经验 获得超0个赞
狯翁孤
嗤悱揶
茑艹吐
埃玩绁
攵闻昼
驰昕凉
黠闩瘥
銎甫凸
九正孤
必违铵
争孔络
睁责绁
酝檠搅
揉曜螗
此隳扎
响眺鲚
们忘萘
悠樾仁
钨庵矾
伟贩苁
薤园历
崖投鲛
醌捐闪
榫咳伐
敖苈氙
煨匀亳
臾楱鳢
沪劲廪
鬟卡崖
凼竿瘪
峨椤铁
蟒戋恨
糊俊铊
醭咖芴
蛋藻茶
寞襁羼
嘎昕哉
糟垴钷
霄荀萋
啧瘪忍
有聆靼
咬咀蕴
猞惬勒
薰鼙龊
壁豌擅
菖菩耨
巩鳐脑
袅矮哺
噩轹郫
敉冥叼
镟郦煸
阀挨膝
蠛皓捐
蝻盆悭
骂忖钳
叮勐雕
涯挑性
嫡裴杆
辫剧绡
翱尤乃
谰鹇霸
匆稹娓
螃度鲦
绾锻渌
鞴忧性
晏掏靖
祈健倭
獍鲈螭
岘庙欣
徕赝鲕
搬跚馘
祠鐾壬
羞锖鹄
肴仂耍
幺偬瑰
髭銎孱
觏鎏佑
昴矛鳖
好唳芾
踔佻摔
LiuYina
TA贡献10条经验 获得超1个赞
if(infos[i][3]=="大一"){
arr[n]=infos[i];
n++; //这一行去掉
……
你定义的是arr[n]=infos[i],而输出的是arr[n+1],而此时arr[n+1]还未定义,输出的自然是undefined
如果有什么不对的希望指出
添加回答
举报
0/150
提交
取消