这是forEach()的有效用法吗?

时间:2013-08-18 07:12:46

标签: javascript arrays foreach

将数组中的每个项目添加到结果中。这就是我的尝试。

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]));

3 个答案:

答案 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];