参考文章:Array 对象
-
indexOf
方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1
。
var a = ['a', 'b', 'c'];
a.indexOf('b') // 1
a.indexOf('c') // 2
a.indexOf('y') // -1
indexOf
方法还可以接受第二个参数,表示搜索的开始位置。(从此搜索的开始位置->数组尾部,取搜索范围)
['a', 'b', 'c'].indexOf('a', 1) // -1
上面代码从1号位置开始搜索字符a,结果为-1,表示没有搜索到。
-
lastIndexOf
方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1
。
var a = [2, 5, 9, 2];
a.lastIndexOf(2) // 3
a.lastIndexOf(7) // -1
lastindexOf
方法还可以接受第二个参数,表示搜索的开始位置。(从数组头部->此搜索的开始位置,取搜索范围)
var data = [2, 5, 7, 3, 5];
console.log(data.lastIndexOf(5)); // 4
console.log(data.lastIndexOf(5, 3)); // 1 (从后往前,索引值小于3的开始搜索)
console.log(data.lastIndexOf(4)); // -1 (未找到)
注意,这两个方法不能用来搜索NaN
的位置,即它们无法确定数组成员是否包含NaN。
[NaN].indexOf(NaN) // -1
[NaN].lastIndexOf(NaN) // -1
这是因为这两个方法内部,使用严格相等运算符(===)进行比较,而NaN是一个不等于自身的值。
- 注:Symbol()也不等于自身。
网友评论