0

私はコーディングが初めてで、なぜこれが機能しないのかを理解しようとしています。関数は正常に動作します。処理されていない sumArray 関数に根本的な欠陥があると仮定しています

// 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/>"); 
};

洞察をお寄せいただきありがとうございます。

4

2 に答える 2

4

次のように「i」を宣言する必要がありますvar

for(var i=0;i<10;i++){

両方のループで。そうしないと、両方のループによって 1 つのグローバル "i" が上書きされてしまいます。

于 2012-10-05T17:19:34.613 に答える
4

2 番目のループの直前に、).

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

さらに、非常に注意してdocument.writeください。ドキュメントの読み込み中に実行される場合は、おそらく問題ありません。ドキュメントがロードされた後は使用しないでください。

于 2012-10-05T17:19:43.490 に答える