zoukankan      html  css  js  c++  java
  • ES6数组去重

    ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

    Set 本身是一个构造函数,用来生成 Set 数据结构。

    const s = new Set();
    
    [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
    
    for (let i of s) {
      console.log(i);
    }
    // 2 3 5 4

    上面代码通过add方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值。

    Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。

    // 例一
    const set = new Set([1, 2, 3, 4, 4]);
    [...set]
    // [1, 2, 3, 4]
    
    // 例二
    const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]);
    items.size // 5
    
    // 例三
    function divs () {
      return [...document.querySelectorAll('div')];
    }
    
    const set = new Set(divs());
    set.size // 56
    
    // 类似于
    divs().forEach(div => set.add(div));
    set.size // 56

    上面代码中,例一和例二都是Set函数接受数组作为参数,例三是接受类似数组的对象作为参数。

    上面代码中,也展示了一种去除数组重复成员的方法。

    // 去除数组的重复成员
    [...new Set(array)]

    Array.from方法可以将 Set 结构转为数组。

    const items = new Set([1, 2, 3, 4, 5]);
    const array = Array.from(items);

    这就提供了去除数组重复成员的另一种方法。

    function dedupe(array) {
      return Array.from(new Set(array));
    }
    
    dedupe([1, 1, 2, 3]) // [1, 2, 3]
  • 相关阅读:
    df -l查看本地文件系统
    lvextend/lvreduce/lvresize
    网页代理
    qdaemon not running after system boot AIX 5.2
    RHCS启停
    如何查看linux的命令执行路径
    AIX的inittab分析报告
    aix中主备superblock的位置问题
    linux配置开机启动脚本的文件
    java基础知识的巩固(无序 持续更新)
  • 原文地址:https://www.cnblogs.com/htmlcainiao/p/7889277.html
Copyright © 2011-2022 走看看