ES6之Set集合(通俗易懂,含实践)
Set是什么?它的方法有哪些?它在实例开发中有什么作用?
让我为大家介绍一下吧!
ES6提供了新的数据结构 Set(集合) 。它类似于数组,但成员的值是唯一的,常用于数组去重。
创建方法:
let s = new Set()console.log(s)

它属于什么类型?
console.log(typeof s) //object
我们通常在set中写入数组
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])console.log(s)

由此可见,set 可以自动帮我们去重
Set 对象的几个常用方法和属性
1.size
可以获取元素的个数
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])console.log(s.size) //4
2.add( )
向 Set 添加新元素
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])s.add("四大名著")console.log(s)

3.delete( )
删除由其值指定的元素
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])s.add("四大名著")s.delete("四大名著")console.log(s)

4.has( )
如果值存在则返回 true,否则false
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])console.log(s.has("西游记")) //trueconsole.log(s.has("四大名著")) //false
5.clear( )
清空
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])s.clear()console.log(s)

6.我们可以使用for…of遍历
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])for(let v of s) {console.log(v)}

7.keys( )
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])console.log(s.keys())

8.forEach( )
为每个元素调用回调
let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])s.forEach(item=>{console.log(item)})

实践
1.数组去重
let arr = [1, 2, 3, 3, 2, 1, 4, 5, 1]let result = [...new Set(arr)]console.log(result)

2.交集
let result = [...new Set(arr1)].filter(item=>new Set(arr2).has(item)// {// // 把arr2也变成一个集合// let s2 = new Set(arr2)// // 判断arr2里是否有arr1里的元素// if(s2.has(item)){// return true// }else {// return false// }// }) )console.log(result)

3.并集
let arr1 = [1, 2, 3, 3, 2, 1, 4, 5, 1]let arr2 = [1,2,3,3,2,4]let result = [...new Set([...arr1,...arr2])]console.log(result)

4.差集
let arr1 = [1, 2, 3, 3, 2, 1, 4, 5, 1]let arr2 = [1,2,3,3,2,4]// 取反let result = [...new Set(arr1)].filter(item=>!(new Set(arr2).has(item)))console.log(result);

感谢大家的阅读,如有不对的地方,可以向我指出,感谢大家!
相关文章:
ES6之Set集合(通俗易懂,含实践)
Set是什么?它的方法有哪些?它在实例开发中有什么作用? 让我为大家介绍一下吧! ES6提供了新的数据结构 Set(集合) 。它类似于数组,但成员的值是唯一的,常用于数组去重。 创建方法: let s new S…...
深度学习标注工具(包括自动标注)总结——持续更新
首次记录日期2023年10月24日 名称 导出格式支持形状地址1 anylabeling 支持yolov5和v8,自动标注的软件 沿物体轮廓分割 https://github.com/vietanhdev/anylabeling 2 RectLabel 使用Core ML模型自动标记图像 对象、属性、热键和快速标签的设置。 以PASCAL VOC …...
阿里云核心产品list
计算: 01函数计算(Function Compute)全托管serverless计算服务,不需要管理服务器等基础设施,只需要编写代码并上传。 02云服务器(Elastic Compute Service)云计算服务 03GPU云服务(G…...
矢量图形编辑软件 illustrator 2023 mac 中文软件特点
illustrator 2023 mac是一款矢量图形编辑软件,用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator 2023 mac软件特点 矢量图形:illustrator创建的图形是矢量图形,可以无限放大而不失真,这与像素图形编辑软…...
vue按特定字符串切割后端传输的图片路径
一、分隔字符 /userfiles/1/attachment/null/2023/10/13967b6b8332413f92ab67735873aa76.jpg|/userfiles/1/attachment/null/2023/10/17fd6e2c16144e66b8cd3ec495e6745f.png 后端传来图片的路径是按照 | 进行分隔的 首先在return中定义数组 在methods中添加分隔方法 //将查询…...
Spring底层原理(三)
Spring底层原理(三) Bean的生命周期 SpringBootApplication public class Application {public static void main(String[] args) {ConfigurableApplicationContext context SpringApplication.run(Application.class, args);context.close();} }Slf4j Component public cla…...
ElementPlus表格中的背景透明
ElementPlus表格中的背景透明 最近写大屏,用到elementplus中的el-table,为了让显示效果好看一点,需要把表格的白色背景调整为透明,与整个背景融为一体。可以参考的资料非常少,大部分都是ElmentUI的方法,在…...
【会议征稿通知】2024第四届神经网络、信息与通信工程国际学术会议(NNICE 2024)
2024第四届神经网络、信息与通信工程国际学术会议(NNICE 2024) 2024 4th International Conference on Neural Networks, Information and Communication Engineering 2024第四神经网络、信息与通信工程国际学术会议(NNICE 2024࿰…...
PyCharm改变代码背景图片的使用教程
一个好的集成环境是学习和使用一门编程语言的重中之重,这次我给大家分享如何改变PyCharm软件的代码背景图片。 说明:本教程使用的是汉化版PyCharm软件。 打开PyCharm软件。 点击软件最上方导航栏的文件,然后找到设置。 打开设置然后点击外观…...
BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain----《BadNets:识别机器学习模型供应链中的漏洞》 背景: 许多用户将训练过程外包给云计算,或者依赖于经过训练的模型,然后根据特定的任务对模型进行微调。这…...
Kubernetes速成课程:掌握容器编排的精髓
微服务演进方向 • 面向分布式设计(Distribution):容器、微服务、API 驱动的开发; • 面向配置设计(Configuration):⼀个镜像,多个环境配置; • 面向韧性设计(Resistancy):故障容忍和自愈; • 面向弹性设计(Elasticity):弹性扩展和对环境变化(负载)做出响应; •…...
【数据库】分组数据 GROUP BY、HAVING
分组数据 创建分组过滤分组SQL 子句顺序 创建分组 s q l sql sql 中,使用 GROUP BY 子句对数据进行分组。分组通常与聚合函数一起使用,以对每个组内的数据执行聚合操作; e . g . e.g. e.g. 按照客户分组,计算每个客户的订单总金额…...
“唯品会VIP商品API:一键获取奢侈品详情,尊享品质生活!“
要获取唯品会VIP商品的详细信息,您可以通过唯品会的API接口进行调用。 唯品会提供了多种商品选择,包括服装、美容护肤、鞋子、箱包、家居、母婴等等。在这些商品中,VIP奢侈品专区是唯品会的重要特色之一。 要获取VIP商品的详细信息…...
uniapp解决iOS切换语言——原生导航栏buttons文字不生效
uniapp 切换语言原生导航栏buttons文字不生效? 文章目录 uniapp 切换语言原生导航栏buttons文字不生效?效果图page.json配置解决方式 效果图 场景:在 tabbar 页面中,配置 原生导航栏 buttons ,切换语言时,不…...
idea 基础设置
1、设置 IDEA 主题 2、自动导包和优化多余的包 3、同一个包下的类,超过指定个数的时候,导包合并为* 4、显示行号 , 方法和方法间的分隔符: 5、忽略大小写,进行提示 6、多个类不隐藏,多行显示 7、设置默认的…...
Rockchip Uboot CmdLine 作用 来源 常用参数
Rockchip Uboot CmdLine cmdline 是 U-Boot 向 kernel 传递参数的一个重要手段,诸如传递启动存储,设备状态等。cmdline 参数有多个来源,由 U-Boot 进行拼接、过滤重复数据之后再传给 kernel。U-Boot 阶段的 cmdline 被保存在 bootargs 环境变…...
MySQL表导出
# 导出表和数据 mysqldump --skip-extended-insert -hHost -uUser -pPassword -PPost database table > table.sql# 如: mysqldump --skip-extended-insert -h172.1.0.1 -uroot -pabc123 -P3306 data_support city_code > city_code.sql# 导入表和数据 mysql …...
HTML页面获取URL传递的参数值
如: // 查询url上链接的参数与参数值 function getQueryString(name) {var url window.location.search; // 获取URLvar pattern new RegExp("[\?\&]" name "([^\&])", "i"); // 正则匹配URLvar matcher pattern.exec(…...
mac安装jenkins
1、安装jenkins之前确认是否安装了homebrew 2、开始安装jenkins 安装完如下图则安装完成 3、改一下ip和端口 4、启动jenkins brew services restart jenkins 使用自己修改后的ip:port http://0.0.0.0:8088 根据提示信息,拿到管理员密码,并解锁 5、安装…...
asp.net网球馆计费管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
一、源码特点 asp.net网球馆计费管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语 言开发 aspnet网球馆计费管理系统1 二、…...
FPGA新手必看:用Verilog手搓一个SPI Master控制器(Mode 0/3实战)
FPGA实战:从零构建SPI Master控制器的Verilog实现指南 1. 初识SPI协议与FPGA开发环境搭建 对于刚接触FPGA和数字电路设计的工程师来说,SPI(Serial Peripheral Interface)协议是一个理想的起点。这种同步串行通信协议广泛应用于传感…...
多店铺场景下如何通过快手订单接口实现订单数据的统一聚合管理?
对于电商业务管理系统的开发者而言,服务在快手平台经营多个店铺的商家是常见需求。然而,每个店铺都有独立的授权凭证(access_token)和独立的订单流,若分别对接和管理,不仅开发维护成本高,还容易…...
NotebookLM期刊推荐矩阵(含影响因子、APC费用、AI政策条款、平均一审周期——仅限本周开放下载)
更多请点击: https://intelliparadigm.com 第一章:NotebookLM期刊推荐矩阵(含影响因子、APC费用、AI政策条款、平均一审周期——仅限本周开放下载) NotebookLM 作为 Google 推出的 AI 增强型研究协作者,近期正式开放其…...
探索物联网通信新高度:STM32 MQTT协议功能实现
探索物联网通信新高度:STM32 MQTT协议功能实现 【下载地址】STM32MQTT协议功能实现分享 本仓库提供了一个资源文件,标题为“STM32 MQTT协议功能实现”。该资源文件包含了使用C语言实现的MQTT协议客户端功能,并且已经成功移植到STM32平台上。经…...
5分钟掌握STDF-Viewer:半导体测试数据分析的图形化神器
5分钟掌握STDF-Viewer:半导体测试数据分析的图形化神器 【免费下载链接】STDF-Viewer A free GUI tool to visualize STDF (semiconductor Standard Test Data Format) data files. 项目地址: https://gitcode.com/gh_mirrors/st/STDF-Viewer STDF-Viewer是一…...
Arm Compiler 6.16LTS功能安全认证语言扩展解析
1. Arm Compiler for Embedded FuSa 6.16LTS语言扩展支持现状解析在功能安全关键型嵌入式系统开发中,编译器工具链的认证状态直接关系到最终产品的合规性。Arm Compiler for Embedded FuSa 6.16LTS作为经过功能安全认证的工具链,其语言扩展支持情况需要开…...
K-Means聚类选K避坑指南:当肘部法则“失灵”,轮廓系数如何救场?
K-Means聚类选K避坑指南:当肘部法则"失灵",轮廓系数如何救场? 在数据科学实践中,K-Means算法因其简洁高效而广受欢迎,但确定最佳聚类数K却常让从业者陷入困境。当面对高维、噪声多或分布不平衡的真实业务数据…...
5G网络‘身份证’系统深度游:从CU/DU架构看NCI规划,以及它和4G ECGI到底有啥不同?
5G网络标识系统解构:从NCI位宽设计到CU/DU架构的范式变革 当我们在城市中穿梭时,手机屏幕上那个小小的"5G"图标背后,隐藏着一套精密的网络身份识别体系。这套系统不仅需要在上百万个基站间实现无歧义通信,还要为未来网络…...
FPGA加速储层计算:DPRR设计与时序数据处理优化
1. 储层计算与FPGA加速概述储层计算(Reservoir Computing)作为递归神经网络(RNN)的一种高效训练范式,近年来在时序数据处理领域展现出独特优势。与传统RNN需要调整所有连接权重不同,储层计算的核心思想是仅…...
创业公司如何利用taotoken的token plan套餐控制ai研发成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 创业公司如何利用Taotoken的Token Plan套餐控制AI研发成本 对于早期科技创业公司而言,产品创新与成本控制是两条必须并…...
