JS 數(shù)組遍歷學(xué)習(xí)
引子
在做一個(gè)案例時(shí),發(fā)現(xiàn)的小問題,成功解決!
案例需求如下,將一個(gè)數(shù)組中的元素一個(gè)一個(gè)提取出來,并添加分隔符。
代碼實(shí)現(xiàn)
點(diǎn)擊查看代碼
var arr = ['red', 'blue', 'pink', 'cyan'];
var str = '';
var separater = prompt('自定義您的分隔符!');
for (i = 0; i <= arr.length; i++) {
str += arr[i] + separater;
}
alert(str);
運(yùn)行結(jié)果

運(yùn)行結(jié)果一出來,我就有點(diǎn)疑惑,為什么會多一個(gè)undefined。
思考過程如下:
首先,出現(xiàn)undefined的情況,是在一個(gè)變量只聲明,沒賦值才會這樣。
但是這個(gè)是數(shù)組,會有相同之處嗎?
我數(shù)了下數(shù)組中只有4個(gè)元素,卻輸出了5個(gè)結(jié)果,說明有一個(gè)元素被聲明出來了。
接著,我仔細(xì)過了一遍for循環(huán),發(fā)現(xiàn)問題所在。
原來,計(jì)數(shù)器i要小于數(shù)組長度,而非小于等于。因?yàn)樾蛱枏?開始,遍歷0、1、2、3,為4個(gè)元素;
就結(jié)束了,如果還加等于,那么還會進(jìn)行判斷是否=4的一次循環(huán),而實(shí)際上數(shù)組中并沒有序號為4的元素,
這樣一來,是遍歷了0、1、2、3、4,為5個(gè)元素。
修改代碼進(jìn)行測試,果然對了
修改后運(yùn)行結(jié)果

浙公網(wǎng)安備 33010602011771號