当前位置:网站首页>ES6 从入门到精通 # 10:Set 集合数据类型
ES6 从入门到精通 # 10:Set 集合数据类型
2022-07-29 15:00:00 【凯小默】
说明
ES6 从入门到精通系列(全23讲)学习笔记。
Set 集合
集合:表示无重复值的有序列表
let kaimo = new Set();
console.log(kaimo)
添加元素
let kaimo = new Set();
kaimo.add(3);
kaimo.add("1");
kaimo.add(3);
kaimo.add([3, 1, 3])
console.log(kaimo)
删除元素
kaimo.delete([3, 1, 3]);
console.log(kaimo)
kaimo.delete(3);
console.log(kaimo)
校验某个值是否在 set 中
kaimo.has('1')
访问集合的长度
kaimo.size
注意:forEach 的用法,这里的 val 是相等于 key 的
kaimo.forEach((val, key) => {
console.log("val--->", val)
console.log("key--->", key)
})
用扩展运算符将集合转为数组
let kaimo = new Set([3, 1, 3]);
console.log(kaimo )
let arr = [...kaimo];
console.log(arr)
拓展
set 中对象的引用无法被释放
let kaimo = new Set(), obj = {
name: "kaimo313"};
kaimo.add(obj)
// 释放当前的资源
obj = null
console.log(kaimo);
解决方法:使用 WeakSet
let kaimo1 = new Set(), obj1 = {
name1: "kaimo313"};
kaimo1.add(obj1)
// 释放当前的资源
obj1 = null
let kaimo2 = new WeakSet(), obj2 = {
name2: "kaimo313"};
kaimo2.add(obj2)
// 释放当前的资源
obj2 = null
kaimo1
kaimo2
WeakSet 的特点
- 不能传入非对象类型的参数
- 不可迭代
- 没有 forEach()
- 没有 size 属性
边栏推荐
猜你喜欢
随机推荐
自动化配置SSH免密登录和取消SSH免密配置脚本
微机原理之指令系统和汇编程序设计
突破性能天花板!亚信数据库支撑 10 多亿用户,峰值每秒百万交易
【 LeetCode 】 217. Duplicate elements
机器学习的3大“疑难杂症”,因果学习是突破口 | 重庆大学刘礼
又一位AI大佬辞职进体制内!AI的尽头是编制?
如何获取本地json
深圳见!云原生加速应用构建专场:来看云原生 FinOps、SRE、高性能计算场景最佳实践
Qt学习第一天
C语言 4:汇编语言指令介绍
观光公交题解
多线程顺序运行的 4 种方法,面试随便问!
基于C语言仿真实现的粒子火焰系统
【GoLang】同步锁
How to get local json
QT通过UDP分包传输大图像(测试可传6M)
图斑自上而下,自左而右顺序编码,按照权属单位代码分组,每组从1开始编码
正则、grep/egrep、sed、awk
工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘
AOP实现企业级API访问接口监控(通过Google Guava缓存数据)