JavaScript - TypedArray map() 方法



JavaScript TypedArray 的map() 方法会创建一个新的 TypedArray,其中包含对原始 TypedArray 中每个元素应用用户提供的函数的结果。

  • map() 方法对 TypedArray(例如 Uint8Array、Int16Array 等)进行操作。

  • 它接受一个测试函数作为参数。

  • 测试函数针对 TypedArray 中的每个元素执行。

  • 如果某个元素满足测试函数指定的条件(返回真值)。

语法

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

map(callbackFn, thisArg)

参数

此方法接受两个名为“callbackFn”和“thisArg”的参数,下面分别进行描述:

callbackFn - 此参数是一个测试函数,它将针对 TypedArray 中的每个元素执行。

此函数还接收三个名为“element”、“index”和“array”的参数。以下是每个参数的说明:

  • element - 表示 TypedArray 中当前正在处理的元素。

  • index - 指示 TypedArray 中当前元素的索引(位置)。

  • array - 指的是整个 TypedArray。

thisArg(可选) - 这是一个可选参数,允许您指定this在 callbackFn 中的值。

返回值

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

示例

示例 1

在以下程序中,我们使用 JavaScript TypedArray 的map() 方法创建一个新的 TypedArray,其中包含原始 TypedArray [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>

输出

以上程序返回一个新的 TypedArray,如下所示:

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

示例 2

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

<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>

输出

执行上述程序后,它将返回一个新的 TypedArray,如下所示:

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

示例 3

在下面的示例中,map()方法通过对原始 TypedArray ([2, 4, 6, 8, 10]) 中的每个元素执行提供的函数来创建一个新的 TypedArray。我们创建一个名为 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>

输出

执行程序后,将返回一个新的 TypedArray,其中包含每个元素与自身之和。

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

© . All rights reserved.