美文网首页
EcmaScript6巧用Set去重

EcmaScript6巧用Set去重

作者: LeeYaMaster | 来源:发表于2019-01-15 14:52 被阅读4次

EcmaScript6提供了新的数据结构 Set,与之还有map。它类似于数组,但是成员的值都是唯一的,没有重复的值,也没有键和对。
并且Set也是一个构造函数,用来生成 Set 数据结构。既然他的成员都是唯一的,那么我们可以通过它来做一些文章,比如数组去重:

                const s = new Set();
                let arr = [1, 2, 3, 4, 5, 6, 7, 2, 3];
                arr.forEach(item => s.add(item));
                console.log(s);//Set//展开后是[1,2,3,4,5,6,7]

但是这样输出的是Set型,并不是我们想要的,我们想要的是数组。于是便有两种方法:

                //数组去重方式1
                let arr = [1, 2, 3, 4, 5, 6, 7, 2, 3];
                let arrSet = [...new Set(arr)];
                console.log(arrSet);

用ES6的语法,...把它展开,再用[]包起来,所以变成了数组,这是方法1.

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

第二种方法是用Array.from来让Set转换成数组。同样可以达成目的。
Set这么好用,我们不妨封装成一个方法?

                function dedupe(array) {
                  return Array.from(new Set(array));
                }
                
                dedupe([1, 1, 2, 3]) // [1, 2, 3]

于是,一个数组去重的方法就这样完成啦~

相关文章

  • EcmaScript6巧用Set去重

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

  • JS常用的数组去重(和根据对象里的id去重)

    indexOf去重 ES6 Set去重 for嵌套for,然后splice去重 [...new Set(arr)]...

  • 使用Set进行数组去重

    关键词:ES6,set,Array.from(set),[...set],数组去重 使用Set进行数组去重方法,如...

  • flutter Set集合妙用

    Set Set是不能重复的集合,所以可以用Set去重; 基本数据Set去重 String、int、double类型...

  • 简单的js去重

    new Set Array.from(new Set(arr)); 双重循环去重 filter去重

  • 数组去重

    1.set去重 Map去重

  • ECMAScript6 数组去重

    数组去重这个问题无论是在面试当中,还是实际项目中,出现的频率都挺多的,而我们以往的解决方式,就是通过新建一个空的数...

  • ...new Set([])

    new Set实现去重 ...实现解构 let set =new Set(['a','b','c','a']); ...

  • set 数组去重

    ES6出现了一个新的方法,在面试中个多次被提问到那就是数组去重 1.通过Set去重 例如:var arr = [3...

  • Set数组去重

    参考资料:https://blog.csdn.net/weixin_45112114/article/detail...

网友评论

      本文标题:EcmaScript6巧用Set去重

      本文链接:https://www.haomeiwen.com/subject/ftlydqtx.html