ES6内置对象 - Set

news2024/11/15 13:34:46

Set(es6提供的一种数据结构,类似数组,是一个集合,可以存储任何类型的元素且唯一、不重复,so,多用于元素去重

如上图,Set数据结构自带一些方法

1.Set对象创建

let a = new Set([1,2,3,3,1,'2',4,NaN,NaN]);
console.log(a); 
// 打印如下图:
// 自动过滤重复元素,元素唯一不重复;

// 注:Set特殊值
(1) +0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;
(2) undefined 与 undefined 是恒等的,所以不重复;
(3) 虽然 NaN !== NaN,,但是NaN只能存在一个,所以NaN是例外

let h = new Set('hello')
//Set(4) {'h', 'e', 'l', 'o'}
//注:Set 中 toString 方法是不能将 Set 转换成 String

2.Set对象添加元素

a.add('b');
console.log(a); // Set(7) {1, 2, 3, '2', 4,NaN,'b'}

3.Set对象删除元素

a.delete(4);
console.log(a);  // Set(6) {1, 2, 3, '2',NaN,'b'}

4. 判断Set对象是否包含某元素

a.has(2);  // true

5. Set对象长度

a.size;  // 6

6.Set对象转化为数组

let b = [...a]; 
或者 
let b = Array.from(a);

console.log(b);  //(6) [1, 2, 3, '2', NaN, 'b']

//因此可以利用Set对像进行数组去重
let a1 = [1,1,2,3,4,4,5];
a1 = [...new Set(a1)];  //(5) [1,2,3,4,5]

7.Set对象遍历(Set取数据不能用下标取,而是用遍历取

// a 为 Set(6) {1, 2, 3, '2',NaN,'b'}

a.forEach((val)=>{ 
  console.log(val)
});

或者

for(let i of a ){
  console.log(i)
}

8.

 var a = new Set([1, 2, 3]);
 var b = new Set([4, 3, 2]);

 //并集
  var union = new Set([...a, ...b]); // Set(4) {1, 2, 3, 4}

 //交集
  var intersect = new Set([...a].filter(x => b.has(x)));  //Set(2) {2, 3}

 //差集
  var difference = new Set([...a].filter(x => !b.has(x)));  //Set(1) {1}

参考:

ES6内置对象的新方法新特性
ES6——ES6内置对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1465147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4个为数据程序员量身打造的PyCharm插件

SonarLint 插件可以帮助开发人员在编码过程中发现潜在的代码问题,提高代码质量。可在实时编码过程中发现并修复代码问题,类似于拼写检查器。它不仅仅是一个代码检查工具,更像是代码质量助手。 PyCharm 是一款由 JetBrains 公司推出的强大的 …

Ubuntu系统本地部署Inis博客结合内网穿透实现远程访问本地站点

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总…

超级实用的python代码片段汇总和详细解析(16个)

目录 1. 生成随机文本 2. 计算文本文件中的字数 3. 替换文件文件中的字串 4. 多文件名的批量替换 5. 从网站提取数据 6. 批量下载图片 7.批量删除空文件夹 8.Excel表格读写 9.合并Excel表格工作簿 10.数据库SQL查询 11. 系统进程查杀 12.图像尺寸调整和裁剪 13.图…

蓝桥杯STM32G431RBT6实现按键的单击、双击、长按的识别

阅读引言: 是这样, 我也参加了这个第十五届的蓝桥杯,查看竞赛提纲的时候发现有按键的双击识别, 接着我就自己实现了一个按键双击的识别,但是识别效果不是特别理想,偶尔会出现识别不准确的情况,接…

测试环境搭建整套大数据系统(六:搭建sqoop)

一:下载安装包 https://archive.apache.org/dist/sqoop/ 二:解压修改配置。 tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt cd /opt mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7修改环境变量 vi /etc/profile#SQOOP_HOME export SQOOP_…

outlook邮箱后缀怎么设置?邮箱后缀问题?

outlook邮箱后缀如何修改?微软有哪些后缀的邮箱? Outlook不仅提供了稳定的邮件收发服务,还允许用户根据个人喜好和需求自定义邮箱后缀。那么,Outlook邮箱后缀究竟该如何设置呢?下面,蜂邮EDM将一步步指导您…

【FPGA】VHDL:小型出勤系统设计

附源代码,一定能实现! 目录 EDA设计练习题: 实验要求如下: 思路分析: 代码 99进制计数器 码转换 顶层文件 特别注意 测试 编译通过 结果展示 RTL视图 技术映射视图 软件:Quartus II 13.0 (64…

软件测试需要学习什么?好就业吗?

目前来说的话,整个it 都不太好!但是既然你问了,我也就告诉你吧! 1功能测试 :前端和后端,前端就是简单的页面,你需要考虑的是:必填项,边界值,组合&#xff0c…

深度学习介绍与环境搭建

深度学习介绍与环境搭建 慕课大学人工智能学习笔记,自己学习记录用的。(赋上连接) https://www.icourse163.org/learn/ZUCC-1206146808?tid1471365447#/learn/content?typedetail&id1256424053&cid1289366515人工智能、机器学习与…

XG5032HAN (SAW)振荡器)(piezoman压电侠)

XG5032HAN晶体振荡器通过其卓越的低抖动特性,为需要高频率精度和稳定性的电子设备提供了理想的解决方案。无论是在高性能的数据通信、精密测量XG5032HAN都能提供高质量、可靠的性能。同时,宽广的频率范围其25 MHz到250 MHz,小巧的封装5.0 3.…

问题1-spring-boot版本和org.springframework的spring-web兼容的版本

报错问题如下: Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.createHandlerMethod(AbstractHandlerMeth…

IOT-Reaserch安装ghidra以及IDEA和ghidra的配置

Linux research 5.4.0-91-generic #102~18.04.1-Ubuntu SMP Thu Nov 11 14:46:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux java --version IOT自带的java是符合要求的,不需要额外下载 iotresearch:~/install-file$ java --version openjdk 11.0.13 2021-10-19 …

前后端分离vscode保险业务管理系统vue+Nodejs

本设计主要应用于完成对保险业务进行计算机化的管理。系统前台展示各种种类的保险,顾客可以选择登陆后买入。公司员工为管理员,由公司统一分配账号,员工用工号密码登陆。可以修改密码,查看、修改自己的信息。员工可处理顾客信息。…

java+selenium自动化测试

编写自动化测试代码的时候有时候会遇到修改代码但是仍然不起作用的情况 ,例如 我将测试账号换成只有一个时,代码仍然会执行上面的7个测试账号 解决方法: File->setting->Build->Maven:选择idea自带的maven即可解决 之后…

聊聊mysql的七种日志

进入正题前,可以先简单介绍一下,MySQL的逻辑架构, MySQL的逻辑架构大致可以分为三层: 第一层:处理客户端连接、授权认证,安全校验等。第二层:服务器 server 层,负责对SQL解释、分析、优化、执行操作引擎等。第三层:存储引擎,负责MySQL中数据的存储和提取。我们要知道…

iPaaS生成数据库接口只要60秒?

“iPaaS生成数据库接口只要60秒?” 关于“iPaaS生成数据库接口只要60秒?”的说法,这实际上反映了iPaaS解决方案的一个重要优势:高效率。确实,借助iPaaS平台的现成集成工具和模板,用户可以迅速创建连接到特…

如何使用Douglas-042为威胁搜索和事件应急响应提速

关于Douglas-042 Douglas-042是一款功能强大的PowerShell脚本,该脚本可以提升数据分类的速度,并辅助广大研究人员迅速从取证数据中筛选和提取出关键数据。 该工具能够搜索和识别Windows生态系统中潜在的安全漏洞,Douglas-042会将注意力放在…

Java设计模式-结构型-适配器模式

Java设计模式-结构型-适配器模式 本文我们简单说下设计模式中的适配器模式。 一、概述 ​ 与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是…

架构师技能9-深入mybatis:Creating a new SqlSession到查询语句耗时特别长

开篇语录:以架构师的能力标准去分析每个问题,过后由表及里分析问题的本质,复盘总结经验,并把总结内容记录下来。当你解决各种各样的问题,也就积累了丰富的解决问题的经验,解决问题的能力也将自然得到极大的…

【Python_Zebra斑马打印机编程学习笔记(一)】实现标贴预览的两种方式

实现标贴预览的两种方式 实现标贴预览的两种方式前言一、调用 Labelary Online ZPL Viewer API 方法实现标贴预览功能1、Labelary Online ZPL Viewer API 案例介绍2、生成 PNG 格式3、Parameters 二、通过 zpl 的 label.preview() 方法实现标贴预览功能1、实现步骤2、代码示例 …