for (var e = 0; e < markers.length; e += 1) {
(function (e, markers, latLngBounds) {
if (latLngBounds.contains(markers[e])) {
updatePrompt("Marker is contained");
// Break for loop
}
})();
}
在上面的示例中,在调用updatePrompt
方法之后,如何突破包含闭包的循环?
答案 0 :(得分:3)
var broken = false;
for (var e = 0; e < markers.length; e += 1) {
if (broken) {
break;
} else {
(function (e, markers, latLngBounds) {
if (latLngBounds.contains(markers[e])) {
updatePrompt("Marker is contained");
broken = true;
}
})();
}
}
有点冗长,但你明白了。
这也可以在现代浏览器中使用Array.some
markers.some(function(marker) {
if (latLngBounds.contains(marker)) {
updatePrompt("Marker is contained");
return true;
}
return false;
});
答案 1 :(得分:1)
不确定我是否正确,但如果你想打破循环集 e = markers.length;
此声明
后循环不会继续答案 2 :(得分:0)
另一种方式:
for (var e = 0; e < markers.length; e += 1) {
if ((function (e, markers, latLngBounds) {
if (latLngBounds.contains(markers[e])) {
updatePrompt("Marker is contained");
return 1;
}
return 0;
})())
break;
}