問題:
在Node.js 和Mongoose 中,在forEach 迴圈中執行遞歸函數可能會導致無限循環。我們如何防止這種情況發生?
答案:
直接中斷 forEach 迴圈是不可能的,因為它是作為單一操作執行的,沒有傳統的循環結構。但是,還有其他方法可以模仿破壞行為:
1。使用上下文:
將第二個參數傳遞給 forEach 以用作上下文,並在其中儲存一個布林變數。在 forEach 函數中使用 if 語句檢查布林值並在必要時退出。
2.例外處理:
將整個 forEach 迴圈包含在 try-catch 區塊中,並在想要中斷時拋出例外。由於對效能和程式碼可維護性的影響,這種方法不太受歡迎。
3.使用every() 或some():
使用every() 或some() 方法來取代forEach,這樣可以根據傳回值進行自訂迭代、控制和提前退出。
使用 every() 的範例:
<code class="javascript">['a', 'b', 'c'].every(function(element, index) { // Do your thing, then: if (you_want_to_break) return false; else return true; });</code>
以上是如何擺脫 JavaScript forEach 中的無限迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!