“return”关键字在“forEach”函数中是什么意思

What does `return` keyword mean inside `forEach` function?

本文关键字:意思 是什么 函数 return 关键字 forEach      更新时间:2023-09-26

$('button').click(function () {
   [1, 2, 3, 4, 5].forEach(function (n) {
      if (n == 3) {
         // it should break out here and doesn't alert anything after
         return false
      }
      alert(n)      
   })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Click me</button>

我的问题是:为什么我打return,它仍然提醒下一个号码?就像:忽略下面的代码,继续使用下一个元素

来自Mozilla开发者网络:

除了抛出异常之外,没有任何方法可以停止或中断forEach()循环。如果您需要这样的行为,那么forEach()方法就是错误的工具。

提前终止可通过以下方式完成:

  • 一个简单的循环
  • for。。。of环路
  • Array.prototype.every()
  • Array.prototype.some()
  • Array.prototype.find()
  • Array.prototype.findIndex()

其他Array方法:every()some()find()findIndex()使用返回真值的谓词来测试数组元素,以确定是否需要进一步迭代。

return退出当前函数,但迭代仍在继续,因此您得到了跳过if并提醒4…的"下一个"项目

如果你需要停止循环,你应该使用一个简单的for循环,如下所示:

$('button').click(function () {
   var arr = [1, 2, 3, 4, 5];
   for(var i = 0; i < arr.length; i++) {
     var n = arr[i]; 
     if (n == 3) {
         break;
      }
      alert(n);
   })
})

你可以阅读更多关于js break&在此处继续:http://www.w3schools.com/js/js_break.asp