forEach和普通的for循环是不同的,它不是普通的遍历,本身不能使用break,continue这两个关键字,无法跳出循环,必须遍历所有的数据才能结束。
实现continue的效果可以直接使用return。
实现break的效果可以使用try、throw Error(),通过跳出错误的方式跳出循环。
forEach方法跳出循环示例
function getItemById(arr, id) {
var item = null;
try {
arr.forEach(function (curItem, index) {
// 跳过
if (curItem.id == 0) {
return;//跳过,相当于for循环中continue
}
// 跳出
if (curItem.id == id) {
item = curItem;
throw Error();//跳出,相当于for循环中的break
}
})
} catch (e) {
}
return item;
}
var arr=[1,2,3,4,5,6]
getItemById(arr,5)