为什么不是't for javascript中的每个循环
Why isn't forEach a loop in javascript?
当我尝试时,编译器抛出错误:
['a', 'b', 'c'].forEach(function (x) {
if (x == 'b') {
break //error message: Can't have 'break' outside of loop
}
})
有效语法:
var x = ['a', 'b', 'c'];
for (var i = 0; i < x.length; i++) {
if (x[i] == 'b') {
break
}
}
那么,为什么呢?
forEach
可能会让您相信自己处于for
循环的上下文中,但事实并非如此。
它只是为数组中的每个元素执行的一个方法。因此,在函数内部,您只能控制当前迭代,但不能取消或中断对其他数组元素的方法订阅。
@Wim Hollebrandse很好地解释了你的问题。
如果你想打破这个循环,试着用一些而不是forEach
:
['a', 'b', 'c'].some(function (x) {
if (x == 'b') {
return true;
}
});
这是因为您在一个函数中。break
关键字在这里不可用(循环之外)
因为它是Array原型中的一个方法。
若要爆发,请抛出异常。
相关文章:
- 控制器不会进入for循环:javascript
- 使用来自不同循环Javascript的数据创建数组
- 在for循环-Javascript中创建新对象
- 日期循环 Javascript
- 在循环 javascript 内部创建一个数组
- 使用 for 循环 JavaScript 的打印范围
- 使用RegExp循环数组而不是for循环(Javascript)
- 如何避免循环Javascript
- 如何停止循环 - Javascript 100%
- 我想让我的程序重新运行开头,有点像循环 JavaScript
- css转换在for循环javascript中无法正常工作
- 在for循环javascript中创建对象
- do/while语句中的if-elseif语句无限循环javascript
- 在for循环Javascript中对数字进行分类和计数
- 如何一次运行一次循环javascript
- 请,需要帮助循环Javascript事件
- 在递归循环javascript之后,为JSON键变量使用自定义HTML元素
- 嵌套循环javascript棋盘
- 如何重新启动循环javascript循环
- 在循环 JavaScript 之后刷新页面