前言
数组去重经常是面试被问到的很经典的问题之一。
这里总结一下比较简洁的几种方法。
前提:
1.去重后必须还是数组类型
2.考虑NaN的情况(JS中NaN和NaN不等,但这里当做相等并去重处理)
3.不考虑兼容性
new Set()
这是最优解。ES6语法。
|
|
或者
|
|
缺点:不适用于包含对象类型的数组
indexOf
创建新数组,遍历数组是否存在于新数组中,如果不存在就添加到新数组。
其中用了ES6的for…of,换成for循环同样适用。
网上有用到indexOf判断数组中是否存在某值的,但indexOf不够语义化,且不能判断是否存在NaN
|
|
缺点:不适用于包含对象类型的数组