【ES6复习笔记】集合Set(13)

ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用『扩展运算符』和『for…of…』进行遍历。

集合的属性和方法

  1. size:返回集合的元素个数。
  2. add(value):增加一个新元素,返回当前集合。
  3. delete(value):删除元素,返回boolean值。
  4. has(value):检测集合中是否包含某个元素,返回boolean值。
  5. clear():清空集合,返回undefined。

1. 集合的基本操作

在 JavaScript 中,集合(Set)是一种数据结构,它可以存储任意类型的唯一值。以下是一些基本操作的示例:

// 声明一个 set
let s = new Set();
let s2 = new Set(['大事儿', '小事儿', '好事儿', '坏事儿', '小事儿']);// 元素个数
console.log(s2.size); // 输出: 5// 添加新的元素
s2.add('喜事儿');
console.log(s2); // 输出: Set(6) {"大事儿", "小事儿", "好事儿", "坏事儿", "喜事儿"}// 删除元素
s2.delete('坏事儿');
console.log(s2); // 输出: Set(5) {"大事儿", "小事儿", "好事儿", "喜事儿"}// 检测
console.log(s2.has('糟心事')); // 输出: false// 清空
s2.clear();
console.log(s2); // 输出: Set(0) {}

2. 集合的遍历

可以使用 for...of 循环来遍历集合中的元素:

for(let v of s2){console.log(v);
}

3. 集合的实践应用

集合在实际开发中有很多应用,例如数组去重、求交集、并集和差集等。以下是一些示例:

let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];// 1. 数组去重
let result = [...new Set(arr)];
console.log(result); // 输出: [1, 2, 3, 4, 5]// 2. 交集
let arr2 = [4, 5, 6, 5, 6];
let result = [...new Set(arr)].filter(item => new Set(arr2).has(item));
console.log(result); // 输出: [4, 5]// 3. 并集
let union = [...new Set([...arr,...arr2])];
console.log(union); // 输出: [1, 2, 3, 4, 5, 6]// 4. 差集
let diff = [...new Set(arr)].filter(item =>!(new Set(arr2).has(item)));
console.log(diff); // 输出: [1, 2, 3]

总结

集合是一种非常有用的数据结构,它可以帮助我们快速地进行数组去重、求交集、并集和差集等操作。在实际开发中,合理使用集合可以提高代码的效率和可读性。

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

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

相关文章

whisper.cpp: PC端测试 -- 电脑端部署音频大模型

whisper.cpp: PC端测试 1.环境需要2.构建项目3.PC测试 1.环境需要 以下是经实验验证可行的环境参考,也可尝试其他版本。 (1)PC:Ubuntu 22.04.4 (2)软件环境:如下表所示 工具版本安装Anacond…

NAT的工作原理

NAT(Network Address Translation,网络地址转换)的工作原理主要是通过修改网络数据包中的IP地址信息来实现的。它允许内部网络使用私有IP地址,同时通过一个或少数几个公共IP地址来接入外部网络(通常是Internet&#xf…

安全筑堤,效率破浪 | 统一运维管理平台下的免密登录应用解析

在信息技术迅猛发展的今天,企业运维管理领域正面临着前所未有的复杂挑战。统一运维管理平台作为集中管理和监控IT基础设施的核心工具,其安全性和效率至关重要。免密登录作为一种新兴的身份验证技术,正逐渐成为提升运维管理效率和安全性的重要…

论文复刻:ESG表现对企业价值的影响机制研究——A股上市公司证据(2009-2023年)

参照王波(2022)的做法,对来自软科学《ESG表现对企业价值的影响机制研究——来自我国A股上市公司的经验证据》一文中的基准回归部分进行复刻 以中国2009-2023年A股上市公司为研究样本考察企业的环境、社会和治理(ESG)表…

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代,小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时,首先要明白它的核心目标:便捷、安全。用户希望在最短的时间内找到需要的物品,而商家则希望通过这…

[2003].第2-01节:关系型数据库表及SQL简介

所有博客大纲 后端学习大纲 MySQL学习大纲 1.数据库表介绍: 1.1.表、记录、字段 1.E-R(entity-relationship,实体-联系)模型中有三个主要概念是: 实体集 、 属性 、 联系集2.一个实体集(class&#xff09…

微调大模型时,如何进行数据预处理? 将<input, output>转换为模型所需的<input_ids, labels, attention_mask>

原始训练数据集格式如下&#xff1a; <input, output> 形式&#xff1a;字符 模型训练所需数据格式如下&#xff1a; # tokenizer处理后 return {"input_ids": example,"labels": labels,"attention_mask": example_mask, } 将字符转…

基于websocket实现本地web语音聊天

基于libwebsockets库实现语音聊天 1、关于libwebsocket库自行编译2、client使用htmljs 代码3、服务端代码 1、关于libwebsocket库自行编译 2、client使用htmljs 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

git推送本地仓库到远程(Gitee)

目录 一、注册创建库 二、创建仓库 三、推送本地仓库到远程 1.修改本地仓库用户名和邮箱 2.本地库关联远程仓库 3.拉取远程仓库的文件 4.推送本地库的文件 5.查看远程仓库 四、远程分支查看 1.查看远程分支 2.修改test.txt文件 一、注册创建库 Gitee官网&#xff1…

GoZero框架接入数据库引擎Gorm 并实战:构建简单的 CRUD 业务API

GoZero 是一个高性能的微服务框架&#xff0c;它基于 Go 语言开发&#xff0c;提供了丰富的工具支持&#xff0c;能够帮助开发者快速构建可扩展、易维护的应用。Gorm 是 Go 语言中常用的 ORM 库&#xff0c;它帮助我们简化数据库操作&#xff0c;使用面向对象的方式进行增删改查…

KNN分类算法 HNUST【数据分析技术】(2025)

1.理论知识 KNN&#xff08;K-Nearest Neighbor&#xff09;算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类&#xff0c;也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。 KNN算法的思想&#xff1a; 对于任意n维输入向量&#xff0c;分别对应于特征…

达梦数据守护搭建

主备库初始化 ./dminit path/dmdata/data db_nameDM01 instance_nameDMSVR01 port_num5236 page_size16 extent_size32 log_size500 case_sensitive1 SYSDBA_PWDDM01SYSDBA ./dminit path/dmdata/data db_nameDM02 instance_nameDMSVR02 port_num5236 page_size16 extent_size3…

探索Flink动态CEP:杭州银行的实战案例

摘要&#xff1a;本文撰写自杭州银行大数据工程师唐占峰、欧阳武林老师。将介绍 Flink 动态 CEP的定义与核心概念、应用场景、并深入探讨其技术实现并介绍使用方式。主要分为以下几个内容&#xff1a; Flink动态CEP简介 Flink动态CEP的应用场景 Flink动态CEP的技术实现 Flin…

谷歌集群数据集:负载均衡云服务测试数据

谷歌集群数据集 以下为你举例说明各文件中一条数据的具体含义,方便你更好地理解这个数据集: 1. machine_events 文件示例 假设其中有这样一条数据:123456789, 101, 0, "platform_abc", 4, 8 含义:表示在时间戳为123456789微秒时,机器ID为101的这台机器发生了…

打造高效租赁小程序让交易更便捷

内容概要 在如今节奏飞快的商业世界里&#xff0c;租赁小程序如同一只聪明的小狐狸&#xff0c;迅速突围而出&#xff0c;成为商家与消费者之间的桥梁。它不仅简化了交易流程&#xff0c;还在某种程度上将传统租赁模式带入了互联网时代。越来越多的企业意识到&#xff0c;这种…

/proc /dev /sys 目录的用途

author: hjjdebug date: 2024年 12月 25日 星期三 16:32:44 CST description: /proc /dev /sys 目录的用途 文章目录 甲: /proc目录:对module 的管理:$cat /proc/devices 乙: /dev 目录创建设备节点命令 mknod 丙: /sys 目录1. /sys/dev2. /sys/devices3. /sys/module4. /sys/c…

来道面试题——CopyOnWriteArrayList

原理 初始化时候&#xff0c;CopyOnWriteArrayList内部维护了一个可变数组&#xff0c;用于存储元素当执行数据变更操作的时候&#xff0c;会先创建一个原数组的副本&#xff0c;在副本上进行写操作&#xff0c;修改副本中的元素。写操作完成之后&#xff0c;把原数组的引用指…

Nginx整合Lua脚本

Nginx-Lua Nginx整合Lua脚本 Lua环境搭建 下载地址 linux环境下 yum install lua安装后验证 lua -vLua脚本执行 lua xxx.luaNginx整合Lua nginx需要添加lua模块 嵌入内容 示例如下 修改nginx.conf如下 location /lua {default_type text/plain;content_by_lua ngx.sa…

【MinIO系列】MinIO Client (mc) 完全指南

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Jmeter录制https请求

jmeter 5.5版本&#xff0c;chrome浏览器 1、首先添加Test Plan-Thread Group-HTTP(S) Test Script Recorder 2、设置HTTP(S) Test Script Recorder界面的Port&#xff08;监听端口&#xff0c;设置浏览器代理时需要与这里保持一致&#xff09;、HTPS Domains&#xff08;录制…