将数组var arr = [1,1,‘true’,‘true’,true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,‘NaN’, 0, 0, ‘a’, ‘a’,{},{}]中重复的值过滤掉
1.ES6-set
2、利用Map数据结构去重
创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果。
3、forEach + indexOf
该方法的不足之处在于无法对NaN进行过滤,
原因是var a = [1, NaN , 2]; a.indexOf(NaN) === -1;,改善的方法是使用includes方法
4、forEach + includes
5、 filter+indexOf
该方法的不足之处在于无法对NaN进行过滤,
原因是var a = [1, NaN , 2]; a.indexOf(NaN) === -1;,改善的方法是使用includes方法
6、 嵌套循环+splice
每一个循环都会去动态获取数组的length。且该方法无法过滤掉NaN,
因为NaN === NaN的结果为false。