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

2022-08-30 00:51:16

$('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


答案 1

来自 Mozilla 开发者网络

除了引发异常之外,没有办法停止或中断循环。如果您需要这样的行为,则该方法是错误的工具。forEach()forEach()

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

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


答案 2

退出当前函数,但迭代继续进行,因此您将获得跳过并提醒4...returnif

如果你需要停止循环,你应该使用一个普通的循环,如下所示: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