前端去重方法整合

(1)ES6的set()方法
注释:类似'1'和1会两个都保存,NaN和NaN只会保存一个

var arr=[1,5,5,5,2,1,4,2];
arr=[...new Set(arr)]; //[1,5,2,4]

(2)使用遍历+indexOf()
注释:这个方法不能分辨NaN,会出现两个NaN。是有问题的,下面那个方法好一点。

 let a = ['1','1', '2', '3', 1, NaN, NaN, undefined, undefined, null, null, 'a', 'b', 'b'];
      let arr = []
      a.forEach(v => {
        if (arr.indexOf(v) <0) {
          arr.push(v)
        }
      })
      console.log(arr)//["1", "2", "3", 1, NaN, NaN, undefined, null, "a", "b"]

(3)利用obj的特质:key一样值不一样,后面覆盖前面,key,value都一样,会去掉重复的
obj:{key:"",value:""}
注释:“1”和1会被认为是同样的东西

let a = ['1', '1', '2', '3', 1, 2, NaN, NaN, undefined, undefined, null, null, 'a', 'b', 'b'];
      let obj = {}
      a.forEach(v => {
        obj[v] = 0; //如果不设置值,添加不进去属性
      })
      console.log(Object.keys(obj))//["1", "2", "3", "NaN", "undefined", "null", "a", "b"]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。