JS indexOf()
**indexOf()**
方法返回在类型数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。 方法具有与 Array.prototype.indexOf()
相同的算法。 TypedArray是这里的类型化数组类型之一。
语法
typedarray.indexOf(searchElement[, fromIndex = 0])
参数
searchElement
需要在类型化数组中定位的元素
fromIndex
搜索的起始下标。如果下标大于等于类型化数组长度,则返回 -1,意思是类型化数组不会被搜索。如果提供的下标值是负数,则被当做距离类型化数组尾部的偏移。注:如果提供的下标是负数,类型化数组仍然从前到后搜索。如果计算出来的下标小于 0,则会搜索整个类型化数组。默认为 0(搜索整个类型化数组)。
返回值
数组中元素的第一个下标;没有找到则返回**-1** 。
描述
indexOf
使用严格相等 (由 === 或三等号运算符使用的相同方法)比较searchElement
和类型化数组的元素。
示例
let uint8 = new Uint8Array([2, 5, 9]);
uint8.indexOf(2); // 0
uint8.indexOf(7); // -1
uint8.indexOf(9, 2); // 2
uint8.indexOf(2, -1); // -1
uint8.indexOf(2, -3); // 0
规范
Specification | Status | Comment |
---|---|---|
[ECMAScript 2015 (6th Edition, ECMA-262) | ||
TypedArray.prototype.indexOf](https://www.ecma-international.org/ecma-262/6.0/#sec-%typedarray%.prototype.indexof) | Standard | 初始定义。 |
[ECMAScript Latest Draft (ECMA-262) | ||
TypedArray.prototype.indexOf](https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof) | Draft |
浏览器兼容性
We’re converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven’t yet converted the data it contains.
- Desktop
- Mobile
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 45 | (Yes) | 37 (37) | 未实现 | 32 | 未实现 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 未实现 | 未实现 | 37 (37) | 未实现 | 未实现 | 未实现 |
兼容性注解
- 自 Firefox 47 (Firefox 47 / Thunderbird 47 / SeaMonkey 2.44)起,这个方法不再返回
-0
。
例如,new Uint8Array([0]).indexOf(0, -0)
现在始终返回+0
(bug 1242043)。