第一次筛选,为什么使用arr【n】是undefined,使用infos【i】就可以

  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

qq_小辉_4
浏览 1936回答 2
2回答

LiuYina

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

狯翁孤 嗤悱揶 茑艹吐 埃玩绁 攵闻昼 驰昕凉 黠闩瘥 銎甫凸 九正孤 必违铵 争孔络 睁责绁 酝檠搅 揉曜螗 此隳扎 响眺鲚 们忘萘 悠樾仁 钨庵矾 伟贩苁 薤园历 崖投鲛 醌捐闪 榫咳伐 敖苈氙 煨匀亳 臾楱鳢 沪劲廪 鬟卡崖 凼竿瘪 峨椤铁 蟒戋恨 糊俊铊 醭咖芴 蛋藻茶 寞襁羼 嘎昕哉 糟垴钷 霄荀萋 啧瘪忍 有聆靼 咬咀蕴 猞惬勒 薰鼙龊 壁豌擅 菖菩耨 巩鳐脑 袅矮哺 噩轹郫 敉冥叼 镟郦煸 阀挨膝 蠛皓捐 蝻盆悭 骂忖钳 叮勐雕 涯挑性 嫡裴杆 辫剧绡 翱尤乃 谰鹇霸 匆稹娓 螃度鲦 绾锻渌 鞴忧性 晏掏靖 祈健倭 獍鲈螭 岘庙欣 徕赝鲕 搬跚馘 祠鐾壬 羞锖鹄 肴仂耍 幺偬瑰 髭銎孱 觏鎏佑 昴矛鳖 好唳芾 踔佻摔

LiuYina

if(infos[i][3]=="大一"){ arr[n]=infos[i]; n++; //这一行去掉 …… 你定义的是arr[n]=infos[i],而输出的是arr[n+1],而此时arr[n+1]还未定义,输出的自然是undefined 如果有什么不对的希望指出
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript