2017-10-01 4 views
0

私は数字が一緒に追加されていない理由を理解することができません。 他のすべてが意図したとおりに動作するようです。たとえば、3と4の数字を入力します。合計は「034」と計算され、「7」にする必要があります。合計ループが加算を実行しません。

function calculateSumAverage(){ 
// get input 
    var userChoice = document.getElementById("numInput").value; 
// split it somehow with .split(" ") 
    var array = userChoice.split(" "); 
// set sum var to 0 
    var sum = 0; 
// set avg var to 0 
    //var avg = 0; 
// loop input array and sum 
    for (var i = 0; i < array.length; i++) { 
     sum = sum + array[i]; 
    } 
// calc average 
    //var avg = sum/inputs.length; 
// outpout to div 
    document.getElementById("result").innerHTML = sum; 
    //document.getElementById("result").innerHTML = avg; 


} 
+0

を使用して達成することができ、私はちょうど... I.ちょうどする必要があります。持ってる。に!だからここに行く...最初:これは最初の言葉ですか? ಠ_ಠ--- Second:言語にかかわらず、これを理解するために大いに助けが必要でしたか? – XenoRo

+0

バイナリ '+'演算子は、JSでは曖昧です。数値加算または文字列連結のいずれかになります。あなたの配列は文字列を含んでいるので、JSはここで数学的なことをしません。 – Thomas

+0

@AlmightyRそれは[tag:javascript]です。 'document.getElementById(...)。innerHTML'の部分は、それをかなり明確にします/明白ではありません。 – Thomas

答えて

0

+を使用する前に、配列要素を整数に変換してください。

0

文字列に+=という文字列が追加されているため、出力が「034」という理由があります。配列内の値が文字列の場合は、それらを累積する前にそれらを整数に解析する必要があります。

簡単な解析がこれを見て、ので、私は2つの非常に簡単な質問を持っている...そして私は潅水のように聞こえるだろうけど、私はとにかくそれを聞いてきますparseInt()

for (var i = 0; i < array.length; i++) { 
    sum = sum + parseInt(array[i]); 
} 
+0

ありがとうございます。以前はparseIntを使ってみましたが、間違って使用しているに違いありません。 –

+0

@MatthewNeidigようこそ。このような小さなミスが発生します。 – Adriani6

関連する問題