我试图创建一个函数,将数字添加到数组中并返回它们的总和。出于某种原因,它返回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)
答案 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:
function addThemUp(myArray) {
return myArray.reduce(function(a, b) { return a + b; });
}
var myArray = [1, 2, 3, 4, 5];
console.log(addThemUp(myArray));
&#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));