将数组中的每个项目添加到结果中。这就是我的尝试。
function sum(array) {
var result = 0;
result += forEach(array);
return result;
}
我知道的方式是有效的
function sum(numbers) {
var total = 0;
forEach(numbers, function (number) {
total += number;
});
return total;
}
show(sum([1, 10, 100]));
答案 0 :(得分:1)
您的代码几乎是正确的。
function sum(numbers) {
var total = 0;
numbers.forEach(function (number) {
total += number;
});
return total;
}
show(sum([1, 10, 100]));
您使用total
作为闭包来汇总结果完全没问题。
我不知道show
做了什么,但我猜你已经在别处定义了它。另请注意,旧版浏览器可能无法使用Array.forEach
(IE8会让人想到)。
答案 1 :(得分:0)
forEach
函数不是Javascript语言的一个组成部分,因此我们无法肯定地说。
话虽如此,该功能极不可能以result += forEach(array)
工作的方式运作。 (它必须以某种方式猜测它应该将所有参数加在一起并返回结果,这将仅适用于此用例。)
对于它的价值,Perl中存在一个模糊的类似结构:
$result += $_ foreach @array;
答案 2 :(得分:0)
forEach
在JavaScript中不作为函数存在。
您可以将for (var prop in obj)
用作类似的构造,但仅用于对象({}
)和不用于数组([]
)。在这里你可能需要使用像
var sum=0,len=arr.length
for (var i=0;i<len;i++) sum+=arr[i];