在 上一篇 的 字符串去重 里使用了数组查找的方法 include
还有一个数组查找的方法是 indexOf ,使用的时候纠结了一下这两个方法的区别在哪里。
const arr = [NaN, , ]
判断NaN不一样
arr.indexOf(NaN) //-1
arr.includes(NaN) //true
判断 undefined 不一样
arr.indexOf(undefined) //-1
arr.includes(undefined) //true
总结
- indexOf 是判断严格相等 ===
- includes 是判断同值相等 ==
思考
在使用数组去重的时候是使用 indexOf 还是使用 includes 呢?
- 如果我们去重的数组中不可能会出现 NaN 或 undefined时, 使用 includes 就可以了。
- 如果我们去重的数组中可能会出现 NaN 或 undefined时, 使用 indexOf。