TypedArray.prototype.findIndex()
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.
如果某个元素满足所提供的测试函数,findIndex()
方法返回类型化数组中的下标,否则返回 -1。TypedArray 是这里的类型化数组类型之一。
同时请参见 find()
方法,它返回了类型化数组中所发现元素的值,而不是它的下标。
语法
findIndex(callbackFn)
findIndex(callbackFn, thisArg)
参数
返回值
如果元素通过了测试,则为数组下标,否则为 -1。
描述
findIndex
方法对类型化数组中的每个元素执行一次 callback
函数,直到它找到一个使 callback
返回 true的元素。如果发现了一个这样的元素,find
方法将会立即返回该元素的下标。否则,findIndex
方法会返回 -1。callback
只会对那些已经被赋值的索引调用。不会对那些被删除或从来没被赋值的索引调用。
callback
以三个参数调用:元素的值,元素索引,以及要遍历的数组对象。
如果将thisArg
参数提供给findIndex
,它会在调用时传递给callback
,作为它的 this
值。如果没有提供,会使用undefined
。
findIndex
不修改在其上调用的类型化数组。
由 findIndex
处理的元素范围在callback
调用之前就确定了。在 findIndex
调用之后添加到数组的元素不会由 callback
访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback
的值是findIndex
访问它们时候的值。已删除的元素不会被访问。
示例
在类型化数组中寻找质数的下标
下面的示例在类型化数组中寻找质数元素的下标(如果没有质数则返回 -1).
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, 6, 8, 12]);
var uint16 = new Uint16Array([4, 6, 7, 12]);
console.log(uint8.findIndex(isPrime)); // -1,未发现
console.log(uint16.findIndex(isPrime)); // 2
规范
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.prototype.findindex |
浏览器兼容性
BCD tables only load in the browser