我正在尝试使用for循环对整数数组的内容求和。从逻辑上讲,我被困住了。这是我的代码:
<p id='para'></p>
var someArray = [1,2,3,4,5];
function sum () {
for(i=0; i < someArray.length; i++) {
return someArray += someArray[i];
}
}
document.getElementById('para').innerHTML = sum();
答案显然应该是15但我该如何到达那里?有什么想法吗?
谢谢!
答案 0 :(得分:3)
您的退货声明为时尚早。它导致你在第一次运行for循环时返回。 return
将你拉出循环。
<p id='para'></p>
var someArray = [1,2,3,4,5];
function sum () {
var returnValue = 0;
for(i=0; i < someArray.length; i++) {
returnValue += someArray[i];
}
return returnValue;
}
document.getElementById('para').innerHTML = sum();
答案 1 :(得分:2)
你的sum函数中有几个错误,首先你不需要在for循环中使用return语句,而不是你可以使用任何临时变量来存储数组元素的总和并返回那个临时变量。
function sum () {
var total=0;
for(i=0; i < someArray.length; i++) {
total += someArray[i];
}
return total;
}
答案 2 :(得分:1)
使用下面的reduce()
可以很容易地实现这一点:
var someArray = [1,2,3,4,5];
var res = someArray.reduce(function(all, item, index){
return all+item
},0);
document.getElementById('para').innerHTML = res;
<p id='para'></p>
答案 3 :(得分:1)
返回语句位置错误..add返回in for循环。将一个变量声明为for循环,然后在此变量中添加数组值。
function sum () {
var a=0;
for(i=0; i < someArray.length; i++) {
a += someArray[i];
}
return a
}
console.log(sum());
&#13;
或仅使用Array#reduce
var someArray = [1,2,3,4,5].reduce((a,b) => {return a+b})
console.log(someArray)
&#13;