|
|
|
|
|
|
為什么我們不能在 forEach 中使用 break、continue 或 return?
讓我們從一個例子開始。
<script>
let amounts=[1.25,2.25,3.25,4.25];
amounts.forEach((item)=>{
if(item===3.25){
break;
}
});
</script>
輸出

提示是語法錯誤,無效的 break 語句。
我們深入了解一下 forEach 方法。
官方MDN(Mozilla 開發者網絡)文檔說,
除了拋出異常之外,沒有其他方法可以停止或中斷
forEach()循環。如果有這樣的需求,則不應該使用forEach()方法。
原因是 forEach 循環方法有一個應用于數組中每個元素的回調函數。因此,無論函數內是否有跳轉語句,如 continue 或 break,回調函數都需要自行完成。
官方MDN文檔還說到,
可以通過像
for、for...of和for...in這樣的循環語句來實現提前終止。當不需要進一步迭代時,諸如every()、some()、find()和findIndex()等數組方法也會立即停止迭代。
示例
使用 findIndex() 方法立即停止迭代
const array1 = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13;
console.log(array1.findIndex(isLargeNumber));
// 輸出: 3

參考文章
相關文章
