es6(基础十三) Set与WeakSet

2024-06-15 22:18

本文主要是介绍es6(基础十三) Set与WeakSet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概念

    1.新的数据结构,类似于数组

    2.值都是唯一的

let set1 = new Set();
console.info(set1);//Set(0) {}let set2 = new Set([1,2,3,4,5,4,3]);//去重
console.info(set2);//Set(5) {1, 2, 3, 4, 5}let set3 = new Set([1,2,3,'1','2']);//采用全等比较,1与'1'不同
console.info(set3);//Set(5) {1, 2, 3, "1", "2"}

二、作用:数组去重

function dedupe(array) {return Array.from(new Set(array));
}
console.info(dedupe([1, 1, 2, 3])); //(3) [1, 2, 3]

三、使用方法

    new Set()
    add=>增
    size=>length
    clear=>清空(全删)
    delete=>删除某一个
    has=>查

let set4 = new Set();
set4.add(1);
set4.add("你好es6");
set4.add("3")
console.info(set4);//Set(3) {1, "你好es6", "3"}
set4.delete('3');
console.info(set4);//Set(2) {1, "你好es6"}
console.info(set4.size);//2
console.info(set4.has(1));//true
set4.clear();
console.info(set4);//Set(0) {}

四、遍历方法

    keys():返回键名的遍历器
    values():返回键值的遍历器
    entries():返回键值对的遍历器

    forEach():使用回调函数遍历每个成员

let arr5 = new Set(['a','b','c'])
for(let key of arr5.keys()){console.info(key);// a b c
}
for(let value of arr5.values()){console.info(value);//与上面一样
}

五、WeakSet与Set的不同

    1.weakSet的值必须是对象
    2.方法不同
add
delete

has

let weakset1 = new WeakSet();
weakset1.add({});
console.log(weakset1);//WeakSet {{…}}

这篇关于es6(基础十三) Set与WeakSet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064730

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re