使用JavaScript的reduce时,如何跳过迭代?

Bil*_*tin 15 javascript

我试图找出一种在使用JavaScript reduce函数时有条件地突破迭代的方法.

给定以下代码求和整数数组并返回数字10:

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) {
  return previousValue + currentValue;
});
Run Code Online (Sandbox Code Playgroud)

我该怎么做这样的事情:

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) {
  if(currentValue === "WHATEVER") {
    // SKIP or NEXT -- don't include it in the sum
  }
  return previousValue + currentValue;
});
Run Code Online (Sandbox Code Playgroud)

Jar*_*a X 37

你可以返回previousValue

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) {
  if(currentValue === "WHATEVER") {
    return previousValue;
  }
  return previousValue + currentValue;
});
Run Code Online (Sandbox Code Playgroud)

  • 请注意,虽然这是正确的,但有些人可能会发现更容易记住它是累加器,而这正是您应该返回的内容。 (5认同)