热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ES6从入门到精通#10:Set集合数据类型

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ES6从入门到精通#10:Set集合数据类型相关的知识,希望对你有一定的参考价值。说明

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ES6 从入门到精通 # 10:Set 集合数据类型相关的知识,希望对你有一定的参考价值。



说明

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 的特点


  1. 不能传入非对象类型的参数


  1. 不可迭代


  1. 没有 forEach()
  2. 没有 size 属性

推荐阅读
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • C# LiNQ 查询 join连接
    C# LiNQ 查询 join连接 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • JavaScript中属性节点的类型及应用
    本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ... [详细]
  • 图数据库中的知识表示与推理机制
    本文探讨了图数据库及其技术生态系统在知识表示和推理问题上的应用。通过理解图数据结构,尤其是属性图的特性,可以为复杂的数据关系提供高效且优雅的解决方案。我们将详细介绍属性图的基本概念、对象建模、概念建模以及自动推理的过程,并结合实际代码示例进行说明。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文详细介绍了 JavaScript 中类 (class) 的基本语法、定义方式、属性保护方法、私有属性的实现以及继承机制。通过具体的代码示例和详细的解释,帮助开发者更好地掌握 JavaScript 类的相关知识。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
author-avatar
mobiledu2502871567
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有