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(可选) - 这是一个可选参数,允许您在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);
//使用 map() 函数
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 倍。我们传递一个箭头函数,将每个元素乘以 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);
//使用 map() 函数
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);
//使用 map() 函数
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

