日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

JavaScript forEach 方法跳出循环

發(fā)布時(shí)間:2024/1/2 38 coder
生活随笔 收集整理的這篇文章主要介紹了 JavaScript forEach 方法跳出循环 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

for循環(huán)

JavaScript中,for循環(huán)可以使用 breakcontinue 來跳出:

  • continue:跳出本次循環(huán)
  • break:結(jié)束循環(huán)
for (let i = 0; i < 10; i++) {
  if (i === 1) {
    // 跳出本次循環(huán),不會(huì)打印1
    continue
  }
  if (i === 3) {
    // 結(jié)束循環(huán),不會(huì)打印3和之后的數(shù)字
    break
  }
  // 輸出0 2
  console.log(i)
}

forEach循環(huán)

除了for循環(huán),常用的forEach如何退出呢?

const numbers = [1, 2, 3, 4, 5]
numbers.forEach(number => {
  if (number === 2) {
    // 跳出整個(gè)循環(huán)
    break  // SyntaxError: Illegal break statement
  }
    console.log(number)
})

可以看到,直接使用break,會(huì)報(bào)非法中斷語句錯(cuò)誤

再試試 continue

numbers.forEach(number => {
  if (number === 2) {
    // 跳出當(dāng)前循環(huán)
    continue  // SyntaxError: Illegal continue statement: no surrounding iteration statement
  }
    console.log(number)
})

可以看到同樣報(bào)錯(cuò),continue不能在非循環(huán)語句中,原因是forEach的參數(shù)是一個(gè)回調(diào)函數(shù),并不是循環(huán)語句,所以無法執(zhí)行continue語句
具體可以參考:SyntaxError: continue must be inside loop - JavaScript | MDN

里面也提到了解決方法,使用 return 退出當(dāng)前循環(huán),以及使用 for of代替forEach

numbers.forEach(number => {
  if (number === 2) {
    // 跳出當(dāng)前循環(huán)
    return 
  }
  console.log(number) // 1 3 4 5
}
for (const number of numbers) {
  if (number === 2) {
    continue
  }
  console.log(number) // 1 3 4 5
}

但是就想使用 forEach 來跳出循環(huán)應(yīng)該如何操作呢,上面文檔中沒有提到,但可以使用 try catch來實(shí)現(xiàn):

try {
  numbers.forEach(number => {
    if (number === 2) {
      throw new Error()
    }
    console.log(number) // 1
  })
} catch (error) {
  console.log('捕獲到錯(cuò)誤')
}

綜上,使用forEach時(shí),使用 return 跳出當(dāng)前循環(huán),使用 try catch 跳出整個(gè)循環(huán)。

總結(jié)

以上是生活随笔為你收集整理的JavaScript forEach 方法跳出循环的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。