# strictIndexOf
# Description
和 Array.prototype.indexOf 相似,都是采用 严格相等 (opens new window) 判断方式
# Params
(array, value, fromIndex)
fromIndex - 从什么位置开始查找
# Return
Number
# Code
function strictIndexOf(array, value, fromIndex) {
let index = fromIndex - 1
const { length } = array
while (++index < length) {
if (array[index] === value) {
return index
}
}
return -1
}
# Analyze
首先定义
index
为fromIndex - 1
,这里没有判断fromIndex
是否为undefined
,而且fromIndex
也没有默认值,所以fromIndex
必须要传入,否则会得到NaN
通过结构赋值拿到
array.length
while
循环遍历,结束条件为++index < length
判断 当前值是否和传入的
value
严格相等,如果符合 返回index
, 结束循环如果循环完成后还是找不到对应的值,则返回
-1
# Remark
- Array.prototype.indexOf() MDN (opens new window) 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 - 1。
# Example
const a = [1,2,3,4,5]
strictIndexOf(a, 3, 0) // 2