- 1.includes
let arr = [1,2,3];
arr.includes(1) // true
arr.includes(5) //false`在这里插入代码片`
- .使用indexOf
但是有个问题是IndexOf在某些IE版本中是不兼容的,可以用下面的方法:
if (!Array.indexOf) {
Array.prototype.indexOf = function (obj) {
for (var i = 0; i < this.length; i++) {
if (this[i] == obj) {
return i;
}
}
return -1;
}
}
先判断Array是否有indexOf方法,如果没有就扩展出此方法。
所以上面代码要写在使用indexOf方法的代码之前:
- .findIndex()
findIndex() 方法返回数组中通过测试的第一个元素的索引(作为函数提供)。
findIndex() 方法对数组中存在的每个元素执行一次函数:
如果找到函数返回 true 值的数组元素,则 findIndex() 返回该数组元素的索引(并且不检查剩余值)
否则返回 -1
*
注释:findIndex() 不会为没有值的数组元素执行函数。
注释:findIndex() 不会改变原始数组。
eg :let arr = [1,2,3];
arr.findIndex(item=>item==='2') // 1