数组去重ES6

原文链接:https://juejin.im/post/5b17a2c251882513e9059231

1,去除简单类型

  1.  
    //ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:
  2.  
    let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
  3.  
    let set = new Set(array);
  4.  
    console.log(set);
  5.  
    // => Set {1, 2, 3, 4, 5}
  6.  
     
  7.  
    //ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象,如: let set = new Set();
  8.  
    set.add(1).add(2).add(3);
  9.  
    let array = Array.from(set);
  10.  
    console.log(array);
  11.  
    // => [1, 2, 3]
  12.  
     
  13.  
    //于是,现在我们可以用一行代码实现数组去重了:
  14.  
    let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
  15.  
    console.log(array);
  16.  
    // => [1, 2, 3, 4]复制代码

 

2,去除引用类型

 

 

 

  1.  
    var arr = [{
  2.  
    "name": "ZYTX",
  3.  
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
  4.  
    "gender": "AAAAAA.doc"
  5.  
    }, {
  6.  
    "name": "ZYTA",
  7.  
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
  8.  
    "gender": "BBBBBB.doc"
  9.  
    }, {
  10.  
    "name": "ZDTX",
  11.  
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
  12.  
    "gender": "CCCCCC.doc"
  13.  
    }, {
  14.  
    "name": "ZYTX",
  15.  
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
  16.  
    "gender": "AAAAAA.doc"
  17.  
    }];
  18.  
    var hash = {};
  19.  
    arr = arr.reduce(function(item, next) {
  20.  
    hash[next.name] ? '' : hash[next.name] = true && item.push(next);
  21.  
    return item
  22.  
    }, [])
  23.  
    console.log(arr);复制代码

 

 

转载于:https://juejin.im/post/5b17a2c251882513e9059231

posted @ 2019-10-09 09:55  272623186  阅读(160)  评论(0编辑  收藏  举报