Javascript Array forEach()中無法return和break,代替方法some()與every()
阿新 • • 發佈:2019-02-12
我們都知道for迴圈裡要跳出整個迴圈是使用break和return,但在陣列中用forEach迴圈如要退出整個迴圈使用break會報錯,使用return也不能跳出迴圈。查閱相關資料,發現無法終止forEach遍歷,跳出迴圈。
使用break將會報錯:
var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
if(v == num) {
break;
}
console.log(v);
});
使用return也不能跳出整個迴圈:
var arr = [1,2,3,4,5]; var num = 3; arr.forEach(function(v){ if(v == num) { return; } console.log(v); });
針對這個問題可以使用陣列的另外兩個方法some()與every():
some()當內部return true時跳出整個迴圈
var arr = [1,2,3,4,5];
var num = 3;
arr.some(function(v){
if(v == num) {
return true;
}
console.log(v);
});
every()當內部return false時跳出整個迴圈:
var arr = [1,2,3,4,5]; var num = 3; arr.every(function(v){ if(v == num) { return false; }else{ console.log(v); return true; } });