Nếu bạn sử dụng jQuery (do đó không phải jqLite) kết hợp với AngularJS, bạn có thể lặp lại với $ .each - cho phép ngắt và tiếp tục dựa trên biểu thức giá trị trả về boolean.
Mã thông báo:
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
}
});
Chú thích:
Mặc dù sử dụng jQuery không phải là xấu, cả hai hàm Array.some hoặc Array.every đều được MDN khuyên dùng khi bạn có thể đọc tại tài liệu forEach gốc :
"Không có cách nào để dừng hoặc phá vỡ vòng lặp forEach. Giải pháp là sử dụng Array.every hoặc Array.some"
Các ví dụ sau được MDN cung cấp:
Mảng
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
Mảng.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
Tôi không hiểu tại sao bạn không chỉ tìm thấy giá trị thay vì đi vào một vòng lặp. Có thể ví dụ bạn đưa ra không kể toàn bộ câu chuyện, nhưng tôi muốn làm những gì @Aman nói dưới đây. Tại sao đi vào vòng lặp như được đề cập dưới đây và chạy kiểm tra mỗi khi một số () thực hiện chính xác điều đó theo cách thanh lịch hơn. Hãy nhớ rằng nếu bạn coi javascript là ngôn ngữ chức năng, sẽ không có điểm nào trong việc sử dụng các cấu trúc điều khiển for / while / break này. Đó là lý do tại sao foreach, find, some, v.v ... tồn tại
– Nguyễn Lệ Huyền 23:30:09 02/11/2013