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

贊助商

分類目錄

贊助商

最新文章

搜索

使用every()和some()函數(shù)替代forEach中斷循環(huán)

作者:admin    時間:2023-6-7 16:3:44    瀏覽:

JavaScript中由于forEach方法不能中斷循環(huán),為什么不能在forEach中使用break、continue或return?,所以若需要中斷循環(huán),我們便要用其他方法替代forEach。本文我介紹兩種方法,分別使用every()函數(shù)或some()函數(shù)來實(shí)現(xiàn)。

every() 函數(shù)

使用 every() 函數(shù)測試數(shù)組中的所有元素,并且所有元素都必須通過測試。

句法

<script>
      [].every((element, index, array) => {
        //do your test here
        return true;
      });
</script>

讓我們嘗試一個遍歷數(shù)組但尚未進(jìn)行任何測試的示例。但我們不會忘記返回一個布爾值。

<script>
      ['apple', 'mango', 'avocado', 'dragon fruit'].every(
        (element, index, array) => {
          console.log(
            `${element}===${array[index]}is equals to ${
              element === array[index]
            }`
          );
          return true;
        }
      );
</script>

輸出

 

every() 函數(shù)是 forEach 的一個很好的替代品;讓我們看一個帶有測試實(shí)現(xiàn)的示例,然后讓我們在滿足特定條件時從 every() 函數(shù)中返回。

<script>
      const fruitCollection = [
        'apple',
        'mango',
        'avocado',
        'dragon fruit',
        'hamburger',
        'banana',
      ];
      const isEverythingAFruit = (element) => {
        console.log(element);
        if (element === 'hamburger') {
          return false;
        } else {
          return true;
        }
      };
      let result = fruitCollection.every(isEverythingAFruit);
      if (!result) {
        console.log('Not everything in the collection is a fruit');
      }
</script>

輸出

 

some() 函數(shù)

some() 函數(shù)將測試數(shù)組的所有元素,但只有一個元素必須通過測試,因此使其成為替代 forEach 的理想選擇。一旦它通過某個條件,它就會退出循環(huán)。

語法

<script>
      [].some(function (element, index, array) {
        //do something here
      });
</script>

例子

<script>
      const fruitCollection = [
        'apple',
        'mango',
        'avocado',
        'dragon fruit',
        'hamburger',
        'banana',
      ];
      fruitCollection.some((element) => {
        console.log(element);
        if (element === 'mango') {
          return true;
        }
        return false;
      });
</script>

上面給出的示例在返回 true 時跳出循環(huán)。因此,它沒有檢查數(shù)組中的所有元素。

輸出

 

總結(jié)

本文介紹了使用every()some()函數(shù)替代forEach中斷循環(huán)的方法,函數(shù)的用法比較簡單。此外,我也介紹過其他方法來中斷循環(huán),請參閱文章。

相關(guān)文章

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