技術(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的3個(gè)替代品實(shí)現(xiàn)break中斷

作者:admin    時(shí)間:2022-7-5 14:56:18    瀏覽:

JavaScript forEach 不能 break(中途退出),雖然可以通過一些方法來中斷forEach,但并不建議那樣做,我們更加建議使用JavaScript forEach的替代品來實(shí)現(xiàn)break中斷,這是本文要介紹的內(nèi)容。

使用 for 循環(huán)代替 forEach 循環(huán)來中斷

第一個(gè),也是我個(gè)人在這種情況下推薦的一個(gè),是使用標(biāo)準(zhǔn)的 for 循環(huán)和 break 語(yǔ)句。

這是一個(gè)如何使用 for 循環(huán)來中斷循環(huán)的示例:

const myArray = [1, 2, 3];

for (let i = 0; i < myArray.length; i += 1) {
  const arrayItem = myArray[i]

  if (arrayItem > 1) {
    break
  }

  console.log(arrayItem, i, myArray)
}

 

正如上面的示例中所看到的,只需很少的工作,我們就可以讓 for 循環(huán)完全完成 forEach 循環(huán)為我們所做的工作,除了現(xiàn)在我們可以使用 break 語(yǔ)句來中斷額外的迭代。

使用 while 循環(huán)代替 forEach 循環(huán)來中斷

while 循環(huán)與 for 循環(huán)的原理基本相同,只是不在 while 循環(huán)范圍內(nèi)定義索引。

下面是一個(gè)示例,說明如何使用 while 循環(huán)代替 forEach 循環(huán)來中斷:

const myArray = [1, 2, 3];
let index = 0;

while (index < myArray.length) {
  const arrayItem = myArray[index]

  if (arrayItem > 1) {
    break
  }

  console.log(arrayItem, index, myArray)

  index += 1
}

 

使用 Array.prototype.some 作為 forEach 循環(huán)的替代方案來中斷

可以用于 forEach 循環(huán)以執(zhí)行某種中斷的最后一個(gè)替代方法是 Array.prototype.some 方法。

仍然無法從其中調(diào)用 break 語(yǔ)句,但是可以從回調(diào)中返回一個(gè)布爾值,some 循環(huán)將使用該布爾值作為停止遍歷數(shù)組項(xiàng)的指示符。

Array.prototype.some 方法的最初目的是知道一個(gè)項(xiàng)目是否存在于數(shù)組中,如果存在,該方法將返回 true,如果不存在則返回 false

當(dāng)我們想要模擬 break 語(yǔ)句時(shí),我們可以通過在回調(diào)中返回 true 來利用它來創(chuàng)建類似 break 的功能。

下面是一個(gè)如何使用 some 方法來中斷循環(huán)的例子: 

[1, 2, 3].some(a => {
  console.log(a)
  return true
})

輸出

1
true

 

總結(jié)

用幾句話總結(jié)這篇文章,如果你需要break(中斷) JavaScript Array.prototype.forEach,那么你不應(yīng)該使用 JavaScript Array.prototype.forEach,而應(yīng)該使用 for 循環(huán)或 Array.prototype.some 方法。 

相關(guān)文章

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