# arrayIncludes
# Description
和 数组的 includes 方法类似,不过不支持从特定位置开始查找
# Params
(array, value)
# Return
Boolean
# Depend
import baseIndexOf from './baseIndexOf.js'
# Code
function arrayIncludes(array, value) {
  const length = array == null ? 0 : array.length
  return !!length && baseIndexOf(array, value, 0) > -1
}
# Analyze
- 判断 array是否为null(兼容undefined),如果是 取length为0,否则取array.length
- 如果 length为假值,则返回false, 否则 调用baseIndexOf拿到元素下标,判断下标是否大于-1,如果大于-1,说明找到了,返回true,否则返回false
# Remark
- 短路计算 MDN (opens new window)
- 双重非(!!)运算符显式地将任意值强制转换为其对应的布尔值
- Array.prototype.includes() MDN (opens new window) 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
# Example
const a = [1,2,3,4,5, NaN]
arrayIncludes(a, 3) // true
arrayIncludes(a, -1) // false
arrayIncludes(a, NaN) // true