ES6 .Set数据结构去除重复元素
用法一
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数据结构去除重复元素的更多相关文章
- Python列表去除重复元素
主要尝试了3种列表去除重复元素 #2.去除列表中的重复元素 #set方法 def removeDuplicates_set(nums): l2 = list(set(l1)) #用l1的顺序排序l2 ...
- java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据 ...
- LintCode 521.去除重复元素
LintCode 521.去除重复元素 描述 给一个整数数组,去除重复的元素. 你应该做这些事 1.在原数组上操作 2.将去除重复之后的元素放在数组的开头 3.返回去除重复元素之后的元素个数 挑战 1 ...
- php将多个值的数组去除重复元素
array_unique(array) 只能处理value只有单个的数组. 去除有多个value数组,可以使用如下函数实现: function more_array_unique($arr=array ...
- ArrayList去除重复元素(多种方法实现)
package other; import java.util.ArrayList; import java.util.HashSet; public class test4 { public sta ...
- [C++]vector去除重复元素
#include <iostream> #include <vector> #include <algorithm> #include <set> us ...
- C语言两个升序递增链表逆序合并为一个降序递减链表,并去除重复元素
#include"stdafx.h" #include<stdlib.h> #define LEN sizeof(struct student) struct stud ...
- ArrayList去除重复元素(包括字符串和自定义对象)
1.去除重复字符串 package com.online.msym; import java.util.ArrayList; import java.util.Iterator; @SuppressW ...
- 使用HashSet<>去除重复元素的集合
比如,某一个阵列中,有重复的元素,我们想去除重复的,保留一个.HashSet<T>含不重复项的无序列表,从MSDN网上了解到,这集合基于散列值,插入元素的操作非常快. 你可以写一个方法: ...
随机推荐
- MySQL如何发型不乱的应对半年数十TB数据增量
➠更多技术干货请戳:听云博客 前段时间,Oracle官方发布了MySQL 5.7的GA版本.新版本中实现了真正意义的并行复制(基于Group Commit的Group Replication),而不 ...
- error=Error Domain=NSURLErrorDomain Code=-1003
我的情况:模拟器 可以返回数据 .真机不可以.我手机连接的同事的共享,我以为他的网段和后台的网段在同一个网段.一直在找错误,打开手机网络设置一看 ,原来不在同一网段.手机的网络必须要跟PC的在同一个 ...
- 怎么查看Mac电脑的开机记录?
可以使用last命令查看Mac电脑来看开机记录,同时也能查看关机记录. 首先打开mac的命令终端: 命令行终端敲入命令:last | grep reboot (查看开机时间记录) 命令行终端敲入命令: ...
- AFNetworking简单用法
GET请求 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL parameters:ni ...
- 手把手教你使用Git
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- [20130919]出现有持续性的Lazy Write
表现:收到性能告警,LazyWrite严重超标,一般在100以上,正常情况下,LazyWrite为0,但是奇怪的是,当时的Free pages =312190左右,相当于2G空闲空间.OS的可用内存在 ...
- Java Security:Java加密框架(JCA)简要说明
加密服务总是关联到一个特定的算法或类型,它既提供了密码操作(如Digital Signature或MessageDigest),生成或供应所需的加密材料(Key或Parameters)加密操作,也会以 ...
- Oracle Latch的学习【原创】
Latch详解 - MaxChou 本文以学习为目的,大部分内容来自网络转载. 什么是Latch 串行化 数据库系统本身是一个多用户并发处理系统,在同一个时间点上,可能会有多个用户同时操作数据库.多个 ...
- 自定义SeekBar的使用
一.seekbar是进度条,可以使用系统的,也可以自己定义,下面我们将自己定义一个seekbar. 1.自定义滑条,包括对背景,第一进度,第二进度的设置,通过一个xml来实现,在drawable下创建 ...
- http状态码详细说明
100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在请求完 ...