Javascript 计算数组中元素的和

Javascript 计算数组中元素的和,javascript,Javascript,我刚开始学习Javascript,对数组求和有一个问题。螺纹要求如下: 定义一个空数组。同时创建两个函数: 1/addNumber()从HTML文档(id=“num”)的文本输入字段中读取一个值,并将其添加到数组的末尾。 2/printInfo()将数组中元素的数量输出到控制台,然后输出其值的平均值。 HTML文档有两个按钮用于调用函数。“ 我能够找到数组中的总元素,但是当我尝试使用reduce()方法计算这个数组的和时。但不知何故,结果显示为每个元素连接在一起的字符串,而不是最终数字。此数组的

我刚开始学习Javascript,对数组求和有一个问题。螺纹要求如下:

定义一个空数组。同时创建两个函数: 1/addNumber()从HTML文档(id=“num”)的文本输入字段中读取一个值,并将其添加到数组的末尾。 2/printInfo()将数组中元素的数量输出到控制台,然后输出其值的平均值。 HTML文档有两个按钮用于调用函数。“

我能够找到数组中的总元素,但是当我尝试使用reduce()方法计算这个数组的和时。但不知何故,结果显示为每个元素连接在一起的字符串,而不是最终数字。此数组的和应该是2+7+10+12+25=56的和

var myArray = [];
function addNumber(){
    var num = document.getElementById("num").value;
    myArray.push(num);
}

function printInfo(){
    var arr=myArray;
    var array=myArray.length;
    var sum = arr.reduce(function(a, b){return a + b;}, 0);
    console.log(sum);
    console.log("The array has " + array + " elements.");
    console.log("The average of the values is " );
}

输入元素的值始终是字符串。但是,可以使用parseInt()将它们更改为数字


您没有在此处打印
sum
console.log(“值的平均值为”)。使用
console.log(“值的平均值为”+sum)
@Martin-Hi,感谢您提供的解决方案,但我的意思是,我目前正在处理的总和来自“document.getElementById(“num”).value”。因此结果将是027102512,而不是总共56。这就是我坚持的地方。无论是
type=“number”
还是not@adiga-是的,谢谢。@johntner-谢谢John,我只是按照你的解决方案修复了我的代码,现在它工作得很好。在我参加的课程中,他们没有提到在理论中使用“parseInt()”将DOM元素转换为数字。我想我必须阅读更多的文档。谢谢。:)@nsspect-另一种转换为数字的方法是在它前面加一个加号-如
myArray.push(+num)
@johntner-很酷,很有趣的方法,我现在就试试,再次感谢:)
myArray.push(parseInt(num));