簡體   English   中英

在 forEach 循環中繼續

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM