这是forEach()的有效用法吗

Is this a valid use of forEach()?

本文关键字:有效 用法 forEach 这是      更新时间:2023-09-26

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

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

您的代码几乎是正确的。

function sum(numbers) {
  var total = 0;
  numbers.forEach(function (number) {
    total += number;
  });
  return total;
}
show(sum([1, 10, 100]));

使用total作为闭包来聚合结果是非常好的。

我不知道show是做什么的,但我猜你已经在其他地方定义了它。还要注意,Array.forEach可能在较旧的浏览器上不可用(想到的是IE8)。

forEach函数不是Javascript语言的一个组件,因此我们无法确定。

也就是说,函数不太可能以result += forEach(array)的方式工作。(它必须以某种方式猜测,它应该将所有参数加在一起并返回结果,适用于此用例。)


值得一提的是,Perl中存在一个模糊相似的结构:

$result += $_ foreach @array;

forEach在JavaScript中不作为函数存在。您可以使用for (var prop in obj)作为类似的构造,但用于对象({}),用作数组([])。在这里,你可能不得不使用类似的东西

var sum=0,len=arr.length
for (var i=0;i<len;i++) sum+=arr[i];