JavaScript - TypedArray some() 方法



JavaScript TypedArray some() 方法用于检查类型化数组中的至少单个元素是否通过了由提供的函数实现的测试。如果至少有一个元素通过测试,该方法将返回布尔值 'true',否则返回 'false'。需要注意的是,此方法不会修改原始类型化数组,而是返回新的类型化数组。

以下是您应该了解的有关 'some()' 方法的一些其他要点 -

  • some() 方法对 TypedArray(例如 Uint8Array、Int16Array 等)进行操作。
  • 它接受 testing 函数作为参数。
  • 对 TypedArray 中的每个元素执行 testing 函数。
  • 如果元素满足 testing 函数指定的条件(它返回 true 值)。

语法

以下是 JavaScript TypedArray some() 方法的语法 -


 some(callbackFn, thisArg)

参数

此方法接受两个名为 'callbackFn' 和 'thisArg' 的参数,如下所述 -

  • callbackFn − 此参数是一个测试函数,将针对 TypedArray 中的每个元素执行。此函数接受名为 'element'、'index' 和 'array' 的三个参数。以下是每个参数的描述 -
    • element − 表示 TypedArray 中正在处理的当前元素。
    • index − 指示 TypedArray 中当前元素的索引(位置)。
    • array − 指整个 TypedArray。
  • thisArg (可选) − 这是一个可选参数,允许您在 callbackFn 中指定 this 的值。

返回值

如果类型化数组中的一个元素通过提供的函数实现的测试,则该方法返回 true;否则为 false。

示例 1

如果类型化数组中至少有一个元素通过了 callbackFn 函数测试,则此方法将返回 true。

在下面的示例中,我们使用 JavaScript TypedArray some() 方法来确定类型化数组 [1, 2, 3, 4, 5, 6, 7] 中的至少一个元素是否通过了 isEven() 函数实现的测试。这个函数检查类型化数组中的偶数,我们将这个函数作为参数传递给 some() 方法。


<html>
<head>
   <title>JavaScript TypedArray some() Method</title>
</head>
<body>
   <script>
      function isEven(element, index, array){
         return element % 2 == 0;
      }
      const T_array = new Int8Array([1, 2, 3, 4, 5, 6, 7]);
      document.write("The typed array elements are: ", T_array);
      
      //using some() method
      document.write("<br>Is this typed array ", T_array, " contain at least one even number? ", T_array.some(isEven));
   </script>    
</body>
</html>

输出

上面的程序返回 'true'。

The typed array elements are: 1,2,3,4,5,6,7
Is this typed array 1,2,3,4,5,6,7 contain at least one even number? true

示例 2

如果类型化数组中没有一个元素通过 callbackFn 函数测试,则 some() 方法将返回 false。

以下是 JavaScript TypedArray some() 函数的另一个示例。我们使用此方法来检查是否至少有一个元素通过了 isNegative() 函数的测试。我们将此函数作为参数传递给此方法,它会检查类型化数组中的负数。


<html>
<head>
   <title>JavaScript TypedArray some() Method</title>
</head>
<body>
   <script>
      function isNegative(element, index, array){
         return element < 0;
      }
      const T_array = new Int8Array([10, 20, 30, 40, 50, 60, 70, 80]);
      document.write("The typed array elements are: ", T_array);
      
      //using some() method
      document.write("<br>Is this typed array ", T_array, " contain at least one negative number? ", T_array.some(isNegative));
   </script>    
</body>
</html>

输出

执行上述程序后,它将返回 'false'。

The typed array elements are: 10,20,30,40,50,60,70,80
Is this typed array 10,20,30,40,50,60,70,80 contain at least one negative number? false