亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

聲明的一維數組怎么變成了二維數組

?for (var i=0;i<infos.length;i++)
?{var arry1=[];
? var n=0;
???? if(infos[i][3]=="大一")
???? {
????? arry1[n]=infos[i];
????? document.write(arry1[n]+"<br>");
????? n++;
????? }
? }

這里的arry1明明是一維數組,卻可以被二維數組infos賦值,這是一維變二維的另一種方式?


正在回答

3 回答

這段程序是明顯錯的。

首先,你在for循環里定義數組array1=[]和n=0;這樣做的結果是,每進行一次for循環,數組1都會被清空,永遠都是0,你即使在后面往數組里添加再多東西,n變成任意一個值,在下個for循環下統統都會被清空。這是一個問題。

然后,當你? ?if(infos[i][3]=="大一") 這個語句如果成立進入if,讓一維數組[0]=二維數組[0],這是允許的,infos[i]代表infos數組第i行的全部元素,賦給一維數組后,一維數組就變成一個既有二維數組,又有一維元素的數組,就像這個:array=[ [1,2,3,4],1,2,3 ];

再然后,你執行了document.write(arry1[n]+"<br>"),這個方法的作用是,向網頁文檔中輸出一段文字,這個時候整個網頁就只剩下 “arry1[n]+"<br>"“這一段字,然后整個頁面會因為執行了這個方法而被刷新,然后你這個for循環就沒用了,因為頁面被刷新了。

最后,你n++了也沒有,因為上面說了,你每進入一次for循環,n都會被重新賦值等于0;

===================================

所以建議你把var arry1=[];?var n=0;寫在for循環外,然后不要使用docuement.write方法??梢栽诰W頁里寫一個<p>標簽,用p.innerHTML="XXXX"的方法把字符串寫入P標簽中,這樣就不會因為網頁被刷新而時for循環被中斷。



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

我不想就這樣 提問者

這樣我就明白了,還有謝謝,謝謝?。?!
2016-07-21 回復 有任何疑惑可以回復我~

你的 infos[i]是一個一維數組? 你把這一組的數值都給了arry1 就是兩個一維數組的賦值

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

我不想就這樣 提問者

不不不,你看這后面的代碼 for(var i=0;i<arr1.length;i++){ //這里可以用switch if(arr1[i][1]=='女') { document.write(arr1[i][0]+"<br/>");} } 這里答案后面直接拿來當二維數組用的
2016-07-21 回復 有任何疑惑可以回復我~

infos[i];它是('小I','女',20,'大一'),

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

我不想就這樣 提問者

那你的意思是,在這 arry1還是一維數組?
2016-07-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

聲明的一維數組怎么變成了二維數組

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號