TypedArray.prototype.find()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
如果某个元素满足所提供的测试函数,find()
方法返回类型化数组中的值,否则返回 undefined
。TypedArray 是这里的类型化数组类型之一。
同时请参见 findIndex()
方法,它返回了类型化数组中所发现元素的下标,而不是它的值。
语法
find(callbackFn)
find(callbackFn, thisArg)
参数
返回值
如果元素通过了测试,则为该元素,否则为undefined
。
描述
find
方法对类型化数组中的每个元素执行一次 callback
函数,直到它找到一个使 callback
返回 true的元素。如果发现了一个这样的元素,find
方法将会立即返回该元素的值。否则,find
方法会返回undefined
。callback
只会对那些已经被赋值的索引调用。不会对那些被删除或从来没被赋值的索引调用。
callback
以三个参数调用:元素的值,元素索引,以及要遍历的数组对象。
如果将thisArg
参数提供给find
,它会在调用时传递给callback
,作为它的 this
值。如果没有提供,会使用undefined
。
find
不修改在其上调用的类型化数组。
由 find
处理的元素范围在callback
调用之前就确定了。在 find
调用之后添加到数组的元素不会由 callback
访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback
的值是find
访问它们时候的值。已删除的元素不会被访问。
示例
在类型化数组中寻找质数
下面的示例在类型化数组中寻找质数(如果没有质数则返回 undefined
)。
function isPrime(element, index, array) {
var start = 2;
while (start <= Math.sqrt(element)) {
if (element % start++ < 1) {
return false;
}
}
return element > 1;
}
var uint8 = new Uint8Array([4, 5, 8, 12]);
console.log(uint8.find(isPrime)); // 5
规范
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.prototype.find |
浏览器兼容性
BCD tables only load in the browser