技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

JavaScript forEach break 退出循環(huán)的兩種方法

作者:admin    時(shí)間:2022-7-5 9:45:48    瀏覽:

不像for循環(huán)可以用break強(qiáng)迫退出循環(huán),forEach循環(huán)需要另尋方法強(qiáng)行退出循環(huán),本文將介紹兩種實(shí)現(xiàn)方法。

使用拋出錯(cuò)誤來退出 forEach 循環(huán)

我們需要將 Array.prototype.forEach 循環(huán)包裝在 try catch 語句中,以便我們可以捕獲我們將要拋出的錯(cuò)誤,中斷循環(huán)。

示例:

const breakFE = () => {
  throw new Error("BREAK_FE")
}

const handleBreakFEError = e => {
  if (e.message !== "BREAK_FE") {
    throw e
  } else {
    console.log("javascript foreach break!")
  }
}

try {
  [1, 2, 3].forEach(item => {
    if (item > 1) {
      breakFE()
    }
    console.log(item)
  })
} catch (e) {
  handleBreakFEError(e)
}

輸出

1
javascript foreach break!

使用 if 語句退出 forEach 循環(huán)

示例:

let breakFe = false;

[1, 2, 3].forEach(item => {
  if (item > 1) {
    return
  }
  console.log(item)
})

該示例說明如何使用 if 語句跳過 forEach 循環(huán)中的計(jì)算。

實(shí)際上不能使用 if 語句“中斷” JavaScript forEach 循環(huán),因?yàn)樗詴?huì)在你的數(shù)組上執(zhí)行所有迭代。

但是你可以大大減少每次迭代中發(fā)生的工作量。

如果你在 forEach 循環(huán)的每次迭代中進(jìn)行大量計(jì)算,那么雖然并不完美,但你可以使用 if 語句來減輕執(zhí)行該工作的情況,這有點(diǎn)像在每次迭代時(shí)調(diào)用 continue。

總結(jié)

本文介紹了兩種 break 退出 JavaScript forEach循環(huán)的方法,不過這并非理想,如果你需要中途退出循環(huán),你最好使用 for 循環(huán),而不是 forEach 循環(huán)。你可以了解一下for與forEach循環(huán)的幾個(gè)區(qū)別,此外,你要了解,不是所有瀏覽器都支持forEach語句,JS中不兼容IE瀏覽器的循環(huán)語句有哪些?for..of等,如果數(shù)據(jù)量較大,你可能還需要考慮到程序執(zhí)行的速度性能問題,通過實(shí)測(cè)速度比較:JS中的for、for...of和forEach循環(huán),你可能更明白自己需要選擇何種循環(huán)方法。

相關(guān)文章

標(biāo)簽: forEach  forEach方法  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */