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网上了解到,这集合基于散列值,插入元素的操作非常快. 你可以写一个方法: ...
随机推荐
- 从Eclipse迁移到Android Studio
Google正式推出了Android Studio 1.0,Android默认的开发工具也由Eclipse变成了intellij,对Eclipse的支持肯定会越来越少了,对于Android开发者来说, ...
- 【代码笔记】iOS-点击一个button,出6个button
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> //加入头文件 #import "DCPathB ...
- iOS 杂笔-23(区分各种空值)
iOS 杂笔-23(区分各种空值) nil是一个对象指针为空 Nil是一个类指针为空 NULL是基本数据类型为空 NSNull空对象(是可以放在数组里的)
- 小结RunLoop
Core Foundation中关于RunLoop的5个类 CFRunLoopRef CFRunLoopModeRef CFRunLoopSourceRef CFRunLoopTimerRef CFR ...
- Java基础知识学习(八)
IO操作 5个重要的类分别是:InputStream.OutStream.Reader.Writer和File类 面向字符的输入输出流 输入流都是Reader的子类, CharArrayReader ...
- php.ini配置解析
为了让PHP读取这个文件,它必须被命名为'php.ini'. PHP 查找配置文件次序:当前工作目录:环境变量PHPRC ; 指明的路径:编译时指定的路径. ; 在windows下,编译时的路径是 ...
- CentOS下安装Mysql数据库
其实,安装mysql数据库还是比较容易的,安装方式可以分为源码安装和二进制包安装.安装简单,只需要 yum安装几个包就可以搞定,安装后续其实还需要简单做些工作,才可以使用. 环境:CentOS 6.5 ...
- 工作中常用的Linux命令:crontab命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- C++变量和函数
变量可根据作用域和类型分为 (动态)全局变量,静态全局变量,(动态)局部变量,静态局部变量 全局变量:定义在函数外,在源程序其他cpp文件中访问需要extern修饰 静态局部变量:生命周期相比局部变量 ...
- 理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...