创建一个在数组中添加数字并在javascript中返回其总和的函数

时间:2016-06-21 19:30:51

标签: javascript

我试图创建一个函数,将数字添加到数组中并返回它们的总和。出于某种原因,它返回1而不是15,我不知道为什么。

var myArray = [1,2,3,4,5];  
function addThemUp(myArray) {
    var arrayTotal = myArray.length; 
    var totalSum = 0;

    for(var x = 0; x <arrayTotal; x++) {
        totalSum += myArray[x];
        return(totalSum)
    }
}

addThemUp(myArray)

3 个答案:

答案 0 :(得分:4)

您将return语句放在循环中,因此它将仅对第一个元素求和,然后返回。相反,您应该允许循环完成,并仅在完成后返回总和:

function addThemUp (myArray) {

    var arrayTotal = myArray.length; 
    var totalSum = 0;

    for(var x = 0; x < arrayTotal; x++){
        totalSum += myArray[x];
    }

    return(totalSum); // This is where the return should be
}

答案 1 :(得分:3)

在你的情况下,你需要修复totalSum的返回位置,作为函数的最后一个语句(循环之后)。

话虽如此,您可能会发现将数组中的所有数字相加得更清晰,更简单:使用reduce:

&#13;
&#13;
function addThemUp(myArray) {
  return myArray.reduce(function(a, b) { return a + b; });
}

var myArray = [1, 2, 3, 4, 5];
console.log(addThemUp(myArray));
&#13;
&#13;
&#13;

答案 2 :(得分:2)

您应该在for循环

之后返回总和
var myArray = [1, 2, 3, 4, 5];

function addThemUp(myArray) {

    var arrayTotal = myArray.length;
    var totalSum = 0;

    for (var x = 0; x < arrayTotal; x++) {
        totalSum += myArray[x];
    }
    return totalSum;
}

console.log("Sum of all elements: " + addThemUp(myArray));