2012-10-05 56 views
0

我是編碼方面的新手,我試圖弄清楚爲什麼這種方式不起作用。該函數工作正常我假設sumArray函數是不處理的基本缺陷在for循環中的javascript函數不會導致瀏覽器崩潰

// SET UP FUNCTIONS FOR LATER USE 

// sumArray - takes all values within an array and adds them 
var sumArray = function(x){ 
    var sum = 0; 
    for(i=0;i<x.length;i++) { 
     sum += parseInt(x[i]); 
    }; 
    return sum;  
}; 

// create an array and use sumArray function inside of a loop. 

// This works 
var arrayTest = new Array(1,2,3,4,5,6,7,8,9,10); 
document.write (sumArray(arrayTest); 

// This crashes the browser 
for(i=0;i<10;i++){ 
document.write("<br/>" + sumArray(arrayTest) + "<br/>"); 
}; 

在此先感謝您的任何見解。

+2

您應該'[1,2,3 ...]'而不是'new Array(1,2,3 ...)' –

+0

document.write中缺少右括號(sumArray ... – Alfabravo

+0

術語「崩潰瀏覽器「意味着整個瀏覽器進程失敗,這是怎麼回事? – Pointy

回答

4

您需要聲明 「我」 與var

for(var i=0;i<10;i++){ 
在兩個循環

。如果你不這樣做,只有一個全球性的「我」被兩個循環破壞。

+0

+1好點。沒有注意到它影響到兩個循環。 –

+0

在這種情況下它不會「崩潰瀏覽器」,但它會使思考工作不正確。 – Pointy

+0

那麼,沒有什麼應該「瀏覽器崩潰」短缺的瀏覽器錯誤。 –

4

就在第二次循環之前,您錯過了)

document.write (sumArray(arrayTest)); // <-- right here 

此外,非常小心document.write。如果它運行文檔正在加載,那麼您可能會沒事的。確保在文檔加載後不使用它。