[英]Continue inside a forEach loop
如果滿足/未滿足某個條件,則在循環內continue
是標准做法。 在 Javascript forEach
循環中,這會產生語法錯誤:
const values = [1, 2, 3, 4, 5];
values.forEach((value) => {
if (value === 3) { continue; }
console.log(value);
})
SyntaxError[ ... ]: Illegal continue statement: no surrounding iteration statement
無論我使用function
還是箭頭函數,都會發生這種情況。 如何在forEach
循環中continue
?
顯然,你可以做一個相反的情況( if (value !== 3) { ... }
),但這不是我想要的。
正如@robertklep 所說, forEach() 不是一個循環,它是一個函數。 您不能在 forEach 循環中使用continue
關鍵字,因為它的功能是循環數組中的每個項目。
為了實現您可以使用的類似行為,
for(let item of values){
if (item === 3) {
continue;
}
console.log(item);
}
出於實際目的,forEach() 回調中的 return 等效於傳統 for 循環中的 continue,但它不是函數式編程模式最慣用的用法
為了解決這個問題,您可以在循環之前進行過濾:
const values = [1, 2, 3, 4, 5];
values.filter(v => v !== 3).forEach((value) => {
console.log(value);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.