JavaScript - TypedArray map() 方法



JavaScript TypedArray map() 方法创建一个新的类型化数组,其中包含在原始类型化数组中的每个元素上调用用户提供的函数的结果。

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

语法

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


 map(callbackFn, thisArg)

参数

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

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

返回值

此方法返回一个新的类型化数组,其中每个元素都是回调函数的输出。

示例 1

在下面的程序中,我们使用 JavaScript TypedArray map() 方法创建一个新的类型化数组,其中包含原始类型化数组 [16, 25, 36, 49] 中数字的平方根。我们将 Math.sqrt 函数作为参数传递给此方法,该方法返回每个元素的平方根。


<html>
<head>
   <title>JavaScript TypedArray map() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([16, 25, 36, 49]);
      document.write("Original typed array: ", T_array);
      
      //using map() function
      let new_arr = ([]);
      new_arr = T_array.map(Math.sqrt);
      document.write("<br>New typed array: ", new_arr);
   </script>    
</body>
</html>

输出

上面的程序返回一个新的类型化数组 −

Original typed array: 16,25,36,49
New typed array: 4,5,6,7

示例 2

以下是 JavaScript TypedArray map() 方法的另一个示例。我们使用此方法创建一个新的类型化数组,其值是原始类型化数组中每个元素的三倍 ([1, 2, 3, 4, 5])。我们传递一个箭头函数,将每个元素乘以 3。


<html>
<head>
   <title>JavaScript TypedArray map() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array([1, 2, 3, 4, 5]);
      document.write("Original typed array: ", T_array);
      
      //using map() function
      let new_arr = ([]);
      new_arr = T_array.map((a)=> a * 3);
      document.write("<br>New typed array: ", new_arr);
   </script>    
</body>
</html>

输出

执行上述程序后,它将返回一个新的类型化数组 -

Original typed array: 1,2,3,4,5
New typed array: 3,6,9,12,15

示例 3

在下面的示例中,map() 方法通过对原始类型数组 ([2, 4, 6, 8, 10])中的每个元素执行提供的函数来创建新的类型化数组。我们创建一个名为 add() 的函数,它返回每个元素与自身的总和,然后将此函数作为参数传递给 map() 方法。


<html>
<head>
   <title>JavaScript TypedArray map() Method</title>
</head>
<body>
   <script>
      function add(element, index, array){
         return element += element;
      }
      const T_array = new Uint8Array([2, 4, 6, 8, 10]);
      document.write("Original typed array: ", T_array);
      
      //using map() function
      let new_arr = ([]);
      new_arr = T_array.map(add);
      document.write("<br>New typed array: ", new_arr);
   </script>    
</body>
</html>

输出

执行程序后,将返回一个新的类型化数组,其中包含每个元素及其自身的总和。

Original typed array: 2,4,6,8,10
New typed array: 4,8,12,16,20