用法一

var set = new Set([1, 2, 3, 4, 2, 8, 4]); //两个2
for (var elem of set) {
console.log(elem) // 输出结果 1 2 3 4 8
}

用法二结合.map遍历和for循环

var set = new Set();
[1, 2, 3, 4, 2, 8, 4].map(function (elem) {
set.add(elem); //遍历完用add添加至set数组中
})
for (let elem of set) { //利用for...of循环遍历出来
console.log(elem)
}

扩展运算符

var set = new Set([1, 2, 3, 4, 2, 8, 4]);
var arr = [...set];//扩展运算符(…)内部使用for…of循环,
console.log(arr); // 输出 [1,2,3,4,8]

清空、删除

var set = new Set([1, 2, 3, 4, 2, 8, 4]);
// set.clear(); //清空 直接就清空掉所有元素
set.delete(8); //删除 选中元素
var arr = [...set]; //扩展运算符(…)内部使用for…of循环,
console.log(arr); //上面删除了8 输出结果为 [1,2,3,4]

判断set中是否含有

console.log(set.has(8));  //有就返回true 没有返回false

判断set中长度

console.log(set.size); 

求并集、交集、差集

并集

  let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]); let union = new Set([...a,...b]); // 把上面两个对象合到一个数组中通过扩展运算符(…)内部使用for…of循环遍历出来最后通过Set去重复就可以输出了
console.log([...union]); //输出交集结果 [1,2,3,4]

交集

let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]); let intersect = [...a].filter(function(elem){ //把a对象遍历出来 return b.has(elem); //把遍历出来的对象通过has判断是否与a一样,最后把一样的给返回 }); console.log(intersect); //输出结果 [2,3]

差集

  let a = new Set([, , ]);
let b = new Set([, , ]); let difference = [...a].filter(function(elem){
return !b.has(elem); //b的差集为1 首先Set已经去掉了重复的,has去掉了相同的,!取反那就是a里面b没有的,也就是差集,概念上的东西
});
console.log(difference); //输出结果 [1]
注意  用set处理后是set的对象形式  要转成数组使用需要 使用 Array.from(new Set([1,1,2,2,3])) 包裹一层再使用

ES6 .Set数据结构去除重复元素的更多相关文章

  1. Python列表去除重复元素

    主要尝试了3种列表去除重复元素 #2.去除列表中的重复元素 #set方法 def removeDuplicates_set(nums): l2 = list(set(l1)) #用l1的顺序排序l2 ...

  2. java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。

    import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据 ...

  3. LintCode 521.去除重复元素

    LintCode 521.去除重复元素 描述 给一个整数数组,去除重复的元素. 你应该做这些事 1.在原数组上操作 2.将去除重复之后的元素放在数组的开头 3.返回去除重复元素之后的元素个数 挑战 1 ...

  4. php将多个值的数组去除重复元素

    array_unique(array) 只能处理value只有单个的数组. 去除有多个value数组,可以使用如下函数实现: function more_array_unique($arr=array ...

  5. ArrayList去除重复元素(多种方法实现)

    package other; import java.util.ArrayList; import java.util.HashSet; public class test4 { public sta ...

  6. [C++]vector去除重复元素

    #include <iostream> #include <vector> #include <algorithm> #include <set> us ...

  7. C语言两个升序递增链表逆序合并为一个降序递减链表,并去除重复元素

    #include"stdafx.h" #include<stdlib.h> #define LEN sizeof(struct student) struct stud ...

  8. ArrayList去除重复元素(包括字符串和自定义对象)

    1.去除重复字符串 package com.online.msym; import java.util.ArrayList; import java.util.Iterator; @SuppressW ...

  9. 使用HashSet<>去除重复元素的集合

    比如,某一个阵列中,有重复的元素,我们想去除重复的,保留一个.HashSet<T>含不重复项的无序列表,从MSDN网上了解到,这集合基于散列值,插入元素的操作非常快. 你可以写一个方法: ...

随机推荐

  1. JS DOM学习笔记

    1.window对象代表当前浏览器窗口 2.使用window对象的属性.方法的时候可以省略window.例如:window.alert("hello")一般写成alert(&quo ...

  2. c中的指针

    一. 指针前奏 1. 指针的重要性 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言. 2. 小需求 l void change(int  n)函数 ...

  3. iOS开发之UISearchBar初探

    iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...

  4. 在FlashDevelop里使用1.8版本的的TortoiseSVN

    前几天更新TortoiseSVN到1.8版本后发现FD(FlashDevelop)里不能使用svn了,在项目面板里的所有文件及文件夹都不能正确显示svn状态了,清一色都显示为未添加版本控制的状态图标, ...

  5. display:inline-block 去除间隙

    先写出代码 核心css代码: .sample0{display: inline-block;height: 40px;width: 40px;color: #ffffff;background-col ...

  6. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  7. java怎么建立JAVA工程项目?

    File->New->Java Project;src->New->Class; 出现packet,运行出错的问题 然后如果不要包packet 的话,不要在此处填写包的名称就行 ...

  8. Nagios 自定义插件与安装使用之监控dead datanodes

    现在我使用nagios来监控hadoop的核心进程,rm,nm,dn,nn,zkfc,jn,zk等,但是有时候进程虽然还在,但是日志不刷新,web ui上可以看到有些datanodes节点已经变为de ...

  9. 景瑞地产商业智能BI整体实施过程

    1.1行业背景 1.1.1景瑞地产 景瑞地产成立于1993年,专注于房地产开发,并一直秉持“永远诚信.恪守专业.锐意进取.共赢未来”的核心价值观和“舒适之道”的企业使命. 景瑞地产,源自上海.通过多年 ...

  10. RSA Study

    These days I study the RSA Algorithm. It is a little complex, but not very. Also, my study has not f ...