|
|
|
|
|
為什么我們不能在 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 開發(fā)者網(wǎng)絡(luò))文檔說,
除了拋出異常之外,沒有其他方法可以停止或中斷
forEach()
循環(huán)。如果有這樣的需求,則不應(yīng)該使用forEach()
方法。
原因是 forEach
循環(huán)方法有一個應(yīng)用于數(shù)組中每個元素的回調(diào)函數(shù)。因此,無論函數(shù)內(nèi)是否有跳轉(zhuǎn)語句,如 continue 或 break,回調(diào)函數(shù)都需要自行完成。
官方MDN文檔還說到,
可以通過像
for
、for...of
和for...in
這樣的循環(huán)語句來實現(xiàn)提前終止。當(dāng)不需要進一步迭代時,諸如every()
、some()
、find()
和findIndex()
等數(shù)組方法也會立即停止迭代。
示例
使用 findIndex()
方法立即停止迭代
const array1 = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13;
console.log(array1.findIndex(isLargeNumber));
// 輸出: 3
參考文章
相關(guān)文章