# 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.lengthwhile循环遍历,结束条件为++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