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

贊助商

分類目錄

贊助商

最新文章

搜索

使用JavaScript forEach的3個替代品實現(xiàn)break中斷

作者:admin    時間:2022-7-5 14:56:18    瀏覽:

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

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

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

這是一個如何使用 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 語句來中斷額外的迭代。

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

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

下面是一個示例,說明如何使用 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í)行某種中斷的最后一個替代方法是 Array.prototype.some 方法。

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

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

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

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

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

輸出

1
true

 

總結(jié)

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

相關(guān)文章

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