zoukankan      html  css  js  c++  java
  • 一行代码实现数组去重(ES6)

    1. ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:

       let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
       let set = new Set(array);
       console.log(set);
       // => Set {1, 2, 3, 4, 5}
      
    2. ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的SetMap等可遍历对象,如:

       let set = new Set();
       set.add(1).add(2).add(3);
       let array = Array.from(set);
       console.log(array);
       // => [1, 2, 3]
      

    于是,现在我们可以用一行代码实现数组去重了:

    let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
    console.log(array);
    // => [1, 2, 3, 4]
    

    附:ES5实现数组去重

    var array = [1, '1', 1, 2, 3, 2, 4];
    var tmpObj = {};
    var result = [];
    array.forEach(function(a) {
      var key = (typeof a) + a;
      if (!tmpObj[key]) {
        tmpObj[key] = true;
        result.push(a);
      }
    });
    console.log(result);
    // => [1, "1", 2, 3, 4]
  • 相关阅读:
    c++教程目录
    ANDROID教程目录
    ArrayBuffer
    读懂 ECMAScript 规格
    编程风格
    Module 的加载实现
    Module 的语法
    修饰器Decorator
    Class 的继承
    SQL Server 2008 R2导出数据脚本的方法
  • 原文地址:https://www.cnblogs.com/missguolf/p/8185392.html
Copyright © 2011-2022 走看看