IndexOf方法语法
arr.indexOf(searchElement[, fromIndex])
searchElement
要查找的元素
fromIndex 可选
开始查找的位置(默认从0 开始)
indexOf是判断数组中某个元素是否存在,不存在则返回-1
indexOf是传入一个值.找到了也是返回索引,没有找到也是返回-1
var arr = [3, 10, 18, 20]
function myFunction() {
console.log(arr.indexOf(19))
console.log(arr.indexOf(18))
console.log(arr1.indexOf(3, 1))
console.log(arr1.indexOf(10, 1))
}
结果为:-1 2 -1 1
indexOf代码复写:
Array.prototype.myIndexOf = function( searchElement, fromIndex ) {
let length = this.length
let fi = +fromIndex || 0
if (fi > length || length === 0) return -1
// 处理传入fromIndex为负数的情况
fi = fi >= 0? fi: length - Math.abs(fi)
for (let index = fi; index < length; index++) {
if (this[index] === searchElement) return index
}
return -1
}
findIndex是用来查找索引的,返回的查找到的符合项的索引
findIndex是传入一个测试条件,也就是函数,找到了返回当前项索引,没有找到返回-1
var arr = [3, 10, 18, 20]
function myFunction() {
console.log(arr.findIndex(item => item == 19))
console.log(arr.findIndex(item => item == 18))
}
结果为:-1 2