2013-10-08 48 views
0

我正在學習Javascript,並遇到推送方法的問題。當我在一個循環內使用它時,它使得我的數組有33個項目,而不僅僅是將3添加到列表中。初始列表長度爲1-10個項目,由用戶定義。我在腳本的開始部分啓動了所有變量,並且只有當用戶最初告訴我該數組需要多長時,纔會操作變量項目。從那裏它是數組方法的基本練習,這是給我的問題。以下是代碼的推動部分。我很欣賞任何反饋,如果有人認爲有必要,我會提供更多的代碼。爲什麼我的javascript .push方法添加了太多的對象?

for (i = 0 ; i < 3 ; i++){ 
     newfood = prompt("Please enter food " + (i + 1) + "."); 
    foods.push(newfood); 
} 

document.write("<ol>"); 
i = 0; //resetting variable i to 0 
for (i = 0 ; i < items + 3 ; i++){ 
    document.write("<li>" + foods[i] + "</li><br>"); 
} 
document.write("</ol>"); 
+1

什麼是您的'items'變量?你的第二個循環應該讀'for(i = 0; i

+0

foods.length會修復它,雖然我試圖避免該屬性出於某種原因。謝謝你的修復,我很感激。 – Haitus

回答

0

看起來像是在運行字符串連接,然後將字符串視爲數字類型。將我假設的字符串轉換爲int:

for (i = 0 ; i < parseInt(items) + 3 ; i++) { 
    document.write("<li>" + foods[i] + "</li><br>"); 
} 
+0

出於某種原因,我沒有收到回覆已發送的電子郵件。儘管你把它打在了鼻子上,但它被當作一個字符串而不是數字來處理,parseInt是我第一次想到,一旦我理解了問題,就可以解決它。非常感謝您的時間和意見。 – Haitus

相關問題