2017-06-10 5 views
1

平均総数を計算するプログラムを作成しようとしています。全数の合計を総数で割って計算します。私は.reduce()機能を使用しようとしましたが、私が望む結果が得られません。例えば、「4」と「2」を取ると、プログラムはその2つの合計を「6」にしてから「2」で割ります(合計を作る2つの数字があるので)。結局私は "3"を得るでしょう。しかし、私が得ているのは "21"です。これは、プログラムが "4"と "2"を連結して結果が "42"になり、 "2"で割り切れるためです。正しい結果を得るためにコードを変更するにはどうすればよいですか?この追加+は単項プラス演算子ウィッヒは数値に文字列を変換と呼ばれるJavaScript - reduce関数を使用した配列からの中間の数値

var numbers = +document.getElementById("numbers").value; 

var numOfNum = 0; 
 
var result; 
 
var allNums = []; 
 
var total = 0; 
 

 
function add() { 
 

 
    var numbers = document.getElementById("numbers").value; 
 

 
    if (numbers > 5) { 
 
    alert("Maximum character limit reached."); 
 
    } else { 
 
    allNums.push(numbers); 
 
    numOfNum++; 
 
    document.getElementById("output").innerHTML = allNums + "<br>" + numOfNum; 
 
    } 
 

 
    total = allNums.reduce(function(a, b) { 
 
    return a + b; 
 
    }, 0); 
 

 
} 
 

 
function calculate() { 
 
    result = total/numOfNum 
 

 
    document.getElementById("output").innerHTML = result; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>Racunanje proseka</title> 
 
    <meta charset="UTF-8"> 
 
    <script src="racunanjeProseka.js"></script> 
 
</head> 
 

 
<body> 
 
    <input type="text" id="numbers"> <br> 
 
    <button id="add" onclick="add()">Add</button> 
 
    <button id="calculate" onclick="calculate()">Calculate</button> 
 
    <p id="output"></p> 
 
</body> 
 

 
</html>

答えて

3

番号は番号にする必要があります。

2

あなたは

total = allNums.reduce(function(a, b) { 
    return parseInt(a) + parseInt(b); 
    }, 0); 
を追加する前に、値を解析することができます
関連する問題