如果您将 jQuery(因此不是 jqLite)与 AngularJS 结合使用,您可以使用 $.each 进行迭代 - 它允许基于布尔返回值表达式进行中断和继续。
JSFiddle:
http://jsfiddle.net/JEcD2/1/
Javascript:
var array = ['foo', 'bar', 'yay'];
$.each(array, function(index, element){
if (element === 'foo') {
return true; // continue
}
console.log(this);
if (element === 'bar') {
return false; // break
}
});
注意:
虽然使用 jQuery 还不错,但 MDN 推荐使用原生 Array.some 或 Array.every 函数,您可以在原生 forEach 文档中阅读:
“没有办法停止或中断 forEach 循环。解决方案是使用 Array.every 或 Array.some”
以下示例由 MDN 提供:
Array.some:
function isBigEnough(element, index, array){
return (element >= 10);
}
var passed = [2, 5, 8, 1, 4].some(isBigEnough);
// passed is false
passed = [12, 5, 8, 1, 4].some(isBigEnough);
// passed is true
Array.every:
function isBigEnough(element, index, array){
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed is false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed is true