str0 = re.sub(r'(\\"title\\" : \\".+?);(.+?\\")',r"\1\2", str0)
$('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>
,为什么它仍会提醒下一个号码?就像:忽略下面的代码并继续下一个元素
答案 0 :(得分:112)
除了抛出异常之外,无法停止或中断
forEach()
循环。如果您需要此类行为,forEach()
方法是错误的工具。提前终止可以通过以下方式完成:
- 一个简单的循环
- A
for
...of
环Array.prototype.every()
Array.prototype.some()
Array.prototype.find()
Array.prototype.findIndex()
其他数组方法:
every()
,some()
,find()
和findIndex()
使用谓词返回truthy值来测试数组元素,以确定是否需要进一步迭代
答案 1 :(得分:20)
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&amp; amp;继续:http://www.w3schools.com/js/js_break.asp