JavaScript参考手册
TypedArray
typedArray.map
map()
方法创建一个新的类型数组,其结果是在此类型数组中的每个元素上调用提供的函数。这个方法和Array.prototype.map()
。 TypedArray是这里的类型数组类型之一。
语法
typedarray.map(callback[, thisArg])
参数
callback
生成新类型数组的元素的函数,取三个参数:currentValue
正在处理的类型数组中的当前元素。index
在类型数组中处理当前元素的索引。被调用的array
数组map
被调用。thisArg
可选的。this
执行时使用的值callback
。
返回值
一个新的类型数组。
描述
该map
方法callback
按顺序为类型数组中的每个元素调用一次提供的函数,并从结果中构造一个新的类型数组。callback
只对已经赋值的类型数组的索引被调用; 对于未定义的索引,已经被删除的或者从未被赋值的索引,不会调用它。
callback
被调用三个参数:元素的值,元素的索引和被遍历的类型化的数组对象。
如果thisArg
提供了一个参数map
,它将callback
在被调用时传递给它,作为它的this
值。否则,该值undefined
将被传递以用作其this
值。this
最终可观察到的值callback
是根据用于确定this
函数所看到的通常规则来确定的。
map
不会改变它被调用的类型数组(尽管callback
如果调用,可能会这样做)。
处理的元素范围map
在第一次调用之前设置callback
。在map
开始调用之后追加到数组的元素将不会被访问callback
。如果类型数组的现有元素被更改或删除,则传递给它们的值callback
将是map
访问它们时的值; 被删除的元素不被访问。
示例
将一个类型数组映射到一个平方根的类型数组
下面的代码接受一个类型数组,并创建一个新的类型数组,其中包含第一个数组中的数字的平方根。
var numbers = new Uint8Array([1, 4, 9]);
var roots = numbers.map(Math.sqrt);
// roots is now: Uint8Array [1, 2, 3],
// numbers is still Uint8Array [1, 4, 9]
使用包含参数的函数映射一个数字类型数组
下面的代码显示了当一个需要一个参数的函数与它一起使用时map的工作方式。该参数将自动分配给类型化数组的每个元素,作为通过原始类型化数组的映射循环。
var numbers = new Uint8Array([1, 4, 9]);
var doubles = numbers.map(function(num) {
return num * 2;
});
// doubles is now Uint8Array [2, 8, 18]
// numbers is still Uint8Array [1, 4, 9]
规范
Specification |
Status |
Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'TypedArray.prototype.map' in that specification. |
Standard |
Initial definition. |
ECMAScript 2017 Draft (ECMA-262)The definition of 'TypedArray.prototype.map' in that specification. |
Draft |
|
浏览器兼容性
Feature |
Chrome |
Firefox (Gecko) |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|
Basic support |
(Yes) |
38 (38) |
No support |
No support |
No support |
Feature |
Android |
Chrome for Android |
Firefox Mobile (Gecko) |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
Basic support |
No support |
No support |
38.0 (38) |
No support |
No support |
No support |
TypedArray相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络