首页 > 其他 > 详细

es6的Set结构

时间:2019-12-23 15:34:17      阅读:80      评论:0      收藏:0      [点我收藏+]

今天看了一下es6的文档,发现还是比较实用的,Set结构可以用来数组的去重哎

let arr = [1,3,6,3,1,9]

let arr1 = new Set(arr)

[...arr1]的值就是[1,3,6,9]  是不是很方便

还有一个方法,就是使用Array.from(),

这样就不用来实行对象解构了,直接Array.from(new Set(你要去重的数组啊!!!)))

 

 

tips:  1.new Set().add  意味着向里面加入元素,加入的元素不会发生类型转变,也就是说加入5和"5"其实是不一样的,去重并不会将这两个去掉其中一个

         2. 类似于全等运算符号"===",但是不同的是NaN,全等运算符里面两个NaN是不相等的,而在new Set().add的时候却是相等的,也就是说会发生去重

Set结构主要有四种方法

 

1 add 添加某个值,返回set结构本身

2 delete(value) 删除某个值,返回Boolen,表示是否删除成功

3 has(value)   返回布尔值,表示是否是Set结构的成员

4 clear()  清除所有成员

 

 

Set结构的实例有三个方法,其实感觉也没啥用

因为Set结构的键值和键名是一样的  

举例 let set = new Set([1,2,3])

  • values():返回键值的遍历器 1,2,3
  • keys():返回键名的遍历器1,2,3
  • entries():返回键值对的遍历器[1,1].[2,2],[3,3]
  • forEach():使用回调函数遍历每个成员

类似于Object的方法  Object.keys()   Object.values(),但是使用Object方法的话键值和键名是不一样的

 

使用Set结构可以轻松的实现并集,交集,和差集

代码拷贝如下:

let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);

// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}

// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}

// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}

                  

 

  

es6的Set结构

原文:https://www.cnblogs.com/jiuxu/p/12083839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!