📅  最后修改于: 2023-12-03 15:31:39.349000             🧑  作者: Mango
typedArray.findIndex()
方法搜索数组中满足条件的元素,返回其在数组中的索引。该方法使用二进制搜索算法,因此数组必须事先按升序排序。
typedArray.findIndex()
方法与数组的 findIndex()
方法类似,但它是为 TypedArray 类型数组设计的。
typedArray.findIndex(callback)
callback
:在数组中每个元素上调用的回调函数,接收三个参数:currentValue
:当前元素的值index
:当前元素的索引array
:数组对象本身const typedArray = new Int8Array([-1, 0, 1, 2, 3]);
const index = typedArray.findIndex((currentValue, index, array) => {
return currentValue === 2;
});
console.log(index); // 3
上面的代码创建了一个 Int8Array 类型的数组,并使用 typedArray.findIndex()
方法查找值为 2
的元素。因为 2
在数组中的索引为 3
,因此返回值为 3
。
const typedArray = new Int8Array([-1, 0, 1, 2, 3]);
const index = typedArray.findIndex((currentValue, index, array) => {
return currentValue === 4;
});
console.log(index); // -1
上面的代码创建了一个 Int8Array 类型的数组,并使用 typedArray.findIndex()
方法查找值为 4
的元素。因为数组中不存在值为 4
的元素,因此返回值为 -1
。
由于 typedArray.findIndex()
方法使用二分搜索算法,因此数组必须事先按升序排序。下面是一个排序后的示例:
const typedArray = new Int8Array([-1, 0, 1, 2, 3]);
// 将数组按升序排序
typedArray.sort((a, b) => a - b);
const index = typedArray.findIndex((currentValue, index, array) => {
return currentValue === 2;
});
console.log(index); // 2
上面代码中,typedArray.sort((a, b) => a - b)
对数组进行升序排序。然后使用 typedArray.findIndex()
方法查找值为 2
的元素。由于该方法使用二分搜索算法,因此返回值为 2
,而不是上面的 3
。