2016-10-31 1 views
-1

これまでのところ、整数と " - "で任意の数の入力数字のそれぞれの合計を見つけるためにこれを試しました。Javascriptでforループ内の配列の各部分に対して関数を実行するにはどうすればいいですか?

私はこれを実行すると、

var howM = prompt("How many cards?") 

var arr = []; 
for (var i = 0; i < howM; i++) 
    arr.push(prompt("Enter a card:")); 

console.log(arr) 

var sumpre = []; 

for (var i = 0; i <= howM; i++) { 
    var sum = 0; 
    var eXt = arr[i]; 
    eXt = eXt.replace(/-/g, ""); 
    for (i = 0; i < eXt.length; i++) { 
     sum += parseInt(eXt.substr(i, 1)); 
    } 
    sumpre.push(sum); 
} 
console.log(sumpre) 

は、私も、私はその後、アレイと、未定義の最初の部分のための合計を取得する両方のケースで

var howM = prompt("How many cards?") 

var arr = []; 
for (var i = 0; i < howM; i++) 
    arr.push(prompt("Enter a card:")); 

console.log(arr) 

for (var i = 0; i < howM; i++) { 
    var sum = 0; 
    var eXt = arr[i] 
    eXt = eXt.replace(/-/g, ""); 
    for (i = 0; i < eXt.length; i++) { 
     sum += parseInt(eXt.substr(i, 1)); 
    } 
} 
console.log(sum); 

を試してみました。それをどのようにして各作品に出すのですか?私はそれに何が間違っているかというアイデアを持っていますが、それを修正する方法はあまりよく分かりません。

+2

一般的な先端:コードの可読性を高めるために[インデント](https://en.wikipedia.org/wiki/Indent_style)を利用してください。 –

+0

'arr'のサンプルデータを提供できますか – Enzey

+0

外側ループと内側ループで同じ' for'カウンタ変数名( 'i')を使用しています。それらはすべて自分自身を使用するべきです –

答えて

0

の外からアクセスできなくなります。

var howM = prompt("How many cards?") 

var arr = []; 
for(var i = 0; i < howM; i++) 
    arr.push(prompt("Enter a card:")); 

console.log(arr) 

var sumpre = []; 

for(var i = 0; i < howM; i++) { 
    var sum = 0; 
    var eXt = arr[i]; 
    eXt = eXt.replace (/-/g, ""); 
    for (var j = 0; j < eXt.length; j++) { 
    sum += parseInt(eXt.substr(j, 1)); 
    } 
    sumpre.push(sum); 
} 
console.log(sumpre) 
-2

あなたのあなたのforループsum変数を意味する内部var sum = 0;がそうのように、あなたがforループのネストされたための第二のカウンタを使用する必要がループ

+1

'var'で宣言された変数はブロックスコープではなく、' let'で宣言されたものと同様、 'sum'はforループの外側に表示されます –

+0

いいえ、そこにありますJavaScriptではブロックスコープがありません( 'let'や' const'を使わない限り) – vlaz

+1

'var'で変数を宣言するとJavaScriptにブロックレベルスコープがありません。 ES2015はブロックスコープを 'let'で導入しています。 'var'で宣言された変数には、グローバルスコープまたは関数スコープがあります。 –

関連する問題