zoukankan      html  css  js  c++  java
  • 利用set实现去重

    最近读了一些有关于ES6的文章,觉得真是一个超级大的进步,就是不知道兼容性怎么样,鉴于我还在初学,先写个小例子练手,顺便时刻提醒自己要坚持学下去。未来的趋势肯定是替代es5没跑了。

        var arr=[1,2,1,3,2,4,5,1,3];
        var setArr=new Set(arr);
        var newArr=[];
        setArr.forEach(function(e){
            newArr.push(e);
        });
        console.log(newArr);
    

     set是es6里新提出的一个集合的概念,类似于数组arr,同样不只是数字类型,其他类型的数据如字符串等也是支持的,set有个和数组不同的特性就是重复的元素加入集合中是无效的,因此一个数组,利用set.add来加入到这个集合中来就自动实现了去重的步骤。

    以下是Set支持的所有操作:

    • new Set:创建一个新的、空的Set
    • new Set(iterable):从任何可遍历数据中提取元素,构造出一个新的集合。
    • set.size:获取集合的大小,即其中元素的个数。
    • set.has(value):判定集合中是否含有指定元素,返回一个布尔值。
    • set.add(value):添加元素。如果与已有重复,则不产生效果。
    • set.delete(value):删除元素。如果并不存在,则不产生效果。.add().delete()都会返回集合自身,所以我们可以用链式语法。
    • set[Symbol.iterator]():返回一个新的遍历整个集合的迭代器。一般这个方法不会被直接调用,因为实际上就是它使集合能够被遍历,也就是说,我们可以直接写for (v of set) {...}等等。
    • set.forEach(f):直接用代码来解释好了,它就像是for (let value of set) { f(value, value, set); }的简写,类似于数组的.forEach()方法。
    • set.clear():清空集合。
    • set.keys()set.values()set.entries()返回各种迭代器,它们是为了兼容Map而提供的
  • 相关阅读:
    Bypass WAF
    一种简单的hook方法--LD_PRELOAD变量
    Linux C:access()时间条件竞争漏洞
    环境变量法提权
    sudo-tcpdump提权法
    asynico转载
    pychar 2020.1.2激活
    临时mysql 链接池
    python pip 使用阿里云镜像安装库
    zookeeper kafaka 临时保存
  • 原文地址:https://www.cnblogs.com/weblv/p/5192178.html
Copyright © 2011-2022 走看看