📜  返回在 forEach javascript 中不起作用(1)

📅  最后修改于: 2023-12-03 15:12:19.678000             🧑  作者: Mango

forEach函数中的返回不起作用

在JavaScript中,forEach是一个用于循环遍历数组的函数。我们有时候可能会在forEach中使用return来提前退出循环或者返回值,但是在forEach中使用return却不起作用。这是因为forEach函数始终返回undefined,无法中断循环或返回函数值。

以下是一个简单的例子,我们会发现在使用return尝试中断循环时,不会起作用:

const numbers = [1, 2, 3, 4, 5];

numbers.forEach(num => {
  console.log(num);
  if (num === 3) {
    return;
  }
});

// 输出结果为:
1
2
3
4 
5

上述代码中,我们使用forEach循环遍历了数组numbers,然后在num等于3时,使用return来尝试中断循环。但是,最终的输出结果仍然包括了4和5。

如果我们尝试在forEach的外部使用一个变量来存储函数的返回值,我们会发现它的值始终为undefined。这是因为forEach返回的值是undefined,无法被赋值给变量。

有时候,我们需要中断循环或返回一个值,我们可以使用其他方法,例如:

  • 使用for循环代替forEach。
  • 使用Array.prototype.some或Array.prototype.every来遍历数组,这两个函数可以中断循环并返回布尔值。
  • 使用Array.prototype.map或Array.prototype.reduce来生成新的数组或值。

总而言之,在使用forEach循环遍历数组时,在循环中使用return无法中断循环或返回值。我们可以尝试使用其他方法来达到我们的目的。

参考链接: