ES6 Set()数据结构 —— 再学Set方法
七娃博客510人阅读
Set()函数怎么用?Set()结构类型如何转成数组?Set()函数的操作方法有哪些?ES6新增类似数组的数据结构,数据没有重复的值,值具备唯一性。常见的操作Set结构的方法有add/delete/has/clear...下面是详细介绍。
Set()定义:
MDN:Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。
W3C:ES6 提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。
个人理解:ES6新增类似数组的数据结构,数据没有重复的值,值具备唯一性。
公式
let a = new Set([])
操作方法:
-
a.add(value) 新增,返回 Set 结构本身。
-
a.delete(value) 删除,返回一个布尔值,表示删除是否成功。
-
a.has(value) 判断是否是子成员,表示该值是否为 Set 的成员。
-
a.clear() 清空,没有返回值。
-
a.size 返回 Set的长度。
- a.add(value) 新增,返回 Set 结构本身。
- a.delete(value) 删除,返回一个布尔值,表示删除是否成功。
- a.has(value) 判断是否是子成员,表示该值是否为 Set 的成员。
- a.clear() 清空,没有返回值。
- a.size 返回 Set的长度。
注意
1.Set()会将空内容转换成undefined
2.Set()后的值是唯一的
3.Set()的结果不是一个数组,是一个Set数据类型,需用用Array.from()将其转为数组
笔记源码:
let aa = [1,2,3,5,7,,0,5,3]
let bb = new Set(aa)
bb.add(4)
console.log(bb) // Set(8) {1, 2, 3, 5, 7, …}
if(bb.has(4)){
console.log("has判断成功,4被添加进去了") // 执行
}
if(bb.has(undefined)){
bb.delete(undefined)
console.log("undefined存在,已经被清除!bb的长度: "+bb.size) // undefined存在,已经被清除!bb的长度: 7
}
let cc = Array.from(bb)
console.log("转为数组:"+cc) // 转为数组:1,2,3,5,7,0,4
bb.clear() // 清空Set()
console.log(bb) // Set(0) {}
let aa = [1,2,3,5,7,,0,5,3] let bb = new Set(aa) bb.add(4) console.log(bb) // Set(8) {1, 2, 3, 5, 7, …} if(bb.has(4)){ console.log("has判断成功,4被添加进去了") // 执行 } if(bb.has(undefined)){ bb.delete(undefined) console.log("undefined存在,已经被清除!bb的长度: "+bb.size) // undefined存在,已经被清除!bb的长度: 7 } let cc = Array.from(bb) console.log("转为数组:"+cc) // 转为数组:1,2,3,5,7,0,4 bb.clear() // 清空Set() console.log(bb) // Set(0) {}
评论 | 0 条评论
登录之后才可留言,前往登录