JavaScript - Array some() 方法



在 JavaScript 中,Array.some() 方法接受一個回撥函式,並驗證陣列中是否至少有一個元素透過回撥函式提供的測試。如果至少有一個元素透過測試,則返回“true”。如果函式對所有陣列元素都返回 false,則返回“false”。

some() 方法不會對空陣列元素執行函式。它不會更改原始陣列;它只檢查元素是否滿足指定條件。

語法

以下是 JavaScript Array.some() 方法的語法:

some(callbackFn, thisArg)

引數

此方法接受兩個引數。如下所述:

  • callbackFn − 將對陣列中每個元素呼叫的函式。此函式最多可以接受三個引數
    • currentValue − 陣列中正在處理的當前元素。
    • index (可選) − 陣列中正在處理的當前元素的索引。
    • array (可選) − 呼叫 some() 的陣列。
  • thisArg (可選) − 在執行回撥函式時用作 this 的值。

返回值

此方法返回布林值作為結果。

示例

示例 1

在下面的示例中,我們使用 JavaScript Array.some() 方法檢查提供的陣列元素中是否存在至少一個正數。

<html>
<body>
   <script>
      let numbers = [2, 4, -1, 6, 8];
      let isPositive = numbers.some(function(num) {
         return num > 0;
      });
      document.write(isPositive);
   </script>
</body>
</html>

執行上述程式後,some() 方法返回“true”,因為 numbers 陣列中至少有一個元素 (2) 是正數。

輸出

true

示例 2

在這個例子中,我們檢查至少一個字串元素的長度是否為“5”。

<html>
<body>
   <script>
      let words = ["apple", "banana", "cherry", "date"];
      let isLengthFive = words.some(function(word) {
         return word.length === 5;
      });
      document.write(isLengthFive);
   </script>
</body>
</html>

執行上述程式後,some() 方法返回“true”,因為陣列中至少有一個元素 (orange) 的長度為 5。

輸出

true

示例 3

如果陣列中至少有一個元素不滿足提供的函式實現的條件,則 some() 方法返回“false”作為結果。

<html>
<body>
   <script>
      let numbers = [1, 3, 5, 9, 7];
      let isEven = numbers.some(function(num) {
         return num % 2 === 0;
      });
      document.write(isEven);
   </script>
</body>
</html>

輸出

false

示例 4

在下面的示例中,我們檢查陣列中是否存在特定元素。

<html>
<body>
   <script>
      const fruits = ["apple", "banana", "cherry", "mango"];

      function exists(arr, val) {
         return arr.some((arrVal) => val === arrVal);
      }
      document.write(exists(fruits, "orange"), "<br>");
      document.write(exists(fruits, "banana"));
   </script>
</body>
</html>

輸出

false
true
廣告