js中Set基本使用_js set-程序员宅基地

技术标签: JavaScript  前端  js  javascript  开发语言  ecmascript  

介绍

ECMAScript 6 新增的 Set 是一种新集合类型,为这门语言带来集合数据结构。Set 在很多方面都像是加强的 Map,这是因为它们的大多数 API 和行为都是共有的。

基本API

1. 创建Set实例

使用 new 关键字和 Set 构造函数可以创建一个空集合:

const s = new Set();

如果想在创建的同时初始化实例,则可以给 Set 构造函数传入一个可迭代对象,其中需要包含插入到新集合实例中的元素(Set 可以包含任何 JavaScript 数据类型作为值):

const s = new Set(["val1", 1, true, {
    }, undefined, function fun() {
    }]);

注意:Set结构不会添加重复的值

const s = new Set([1, 1, 2, 3, 4, 4, 5, 6, 7, 4, 2, 1]);
Array.from(s); //  [1, 2, 3, 4, 5, 6, 7]

经常用Set解决数组去重问题

const arr = [1, 2, 3, 3, 4, 5, 4, 4, 2, 1, 3];
Array.from(new Set(arr)); // [1, 2, 3, 4, 5]
2. Set实例转数组
const s = new Set([1, 2, 3]);
Array.from(s); // [1, 2, 3]
3. size属性

size: 获取Set实例的元素个数:

const s = new Set([1, 2, 3]);
s.size; // 3
4. add()

add(): 添加元素:

const s = new Set();
s.add(1).add(2).add(3);
Array.from(s); // [1, 2, 3]
5. has()

has(): 查询Set实例是否存在某元素(返回布尔值):

const s = new Set();
s.add(1).add(2).add(3);
s.has(1); // true
6. delete()

delete(): 删除Set实例中某个元素(返回布尔值):

const s = new Set();
s.add(1).add(2);
s.delete(1);
Array.from(s); // [2]
7. clear()

clear(): 清空Set实例:

const s = new Set();
s.add(1).add(2).add(3);
Array.from(s); // [1, 2, 3]
s.clear();
Array.from(s); // []
8. 迭代

keys():返回键名;
values(): 返回键值;
entries(): 返回键值对;
键名=键值

const s = new Set();
s.add(1).add(2).add(3);
Array.from(s.keys()); // [1, 2, 3]
Array.from(s.values()); // [1, 2, 3]
Array.from(s.entries()); // [[1, 1], [2, 2], [3, 3]]
for-of:
const s = new Set();
s.add(1).add(2).add(3);
for (const i of s) {
    
	console.log(i);
}
// 1
// 2
// 3
forEach
const s = new Set();
s.add(1).add(2).add(3);
s.forEach((value, key) => console.log(key + ' : ' + value));
// 1 : 1
// 2 : 2
// 3 : 3
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45112114/article/details/123231261

智能推荐

DO-178B及DO-178C中的MC/DC有什么不同?-程序员宅基地

文章浏览阅读705次。本文简要讨论了DO-178B及DO-178C中MC/DC的定义。简而言之,DO-178B仅允许唯一原因MC/DC,DO-178C扩展了屏蔽MC/DC及短路MC/DC,大大增强了对存在耦合条件情况的适用性。_do-178c

【PTA】【浙大版《Python 程序设计》7-4 特殊a串数列求和 (20 分)_pta7-4求累加和-程序员宅基地

文章浏览阅读1.1k次。给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246思路:列表解析式构建列表,再求和a,n=list(map(int, input().split())) s = sum([int(s..._pta7-4求累加和

AttributeError: module ‘torch.distributed‘ has no attribute ‘deprecated‘的问题解决_module 'torch.distributed' has no attribute 'reduc-程序员宅基地

文章浏览阅读2.8k次,点赞2次,收藏2次。Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\metya\Anaconda3\lib\site-packages\apex\__init__.py", line 4, in <module> from . import parallel File "D:\metya\Anaconda3\lib\site-packages\apex\par._module 'torch.distributed' has no attribute 'reduceop

oracle之索引优化_oracle索引的使用和优化-程序员宅基地

文章浏览阅读2.4k次。oracle中单列索引和复合索引的选择以及导致索引失效一些常见情况(包含对最佳左前缀和全表扫描的描述)_oracle索引的使用和优化

15.脚本备份、恢复达梦DM数据库_docker 达梦数据库 备份恢复-程序员宅基地

文章浏览阅读458次,点赞8次,收藏11次。脚本命令恢复、备份达梦DM数据库_docker 达梦数据库 备份恢复

Java对List按照Map中某一指定键的值来进行升序或者降序排序_map排序并控制升序降序-程序员宅基地

文章浏览阅读888次。其中,需要将“指定键”替换为需要进行比较的Map中的键名。如果需要进行降序排序,则可以将comperValue值换为down。可以使用Collections.sort()方法对List进行排序。_map排序并控制升序降序

随便推点

华为nova7se乐活版支持鸿蒙,华为nova7se乐活版和nova8se的详细对比参数对比-程序员宅基地

文章浏览阅读1.3k次。原标题:华为nova7se乐活版和nova8se的详细对比参数对比华为nova7se乐活版和nova8se作为性价比还不错的中端机型,不少小伙伴们不知道该如何选择?那么华为nova7se乐活版和nova8se相比哪款更值得大家入手?小编为大家带来关于华为nova7se乐活版和nova8se的详细对比,欢迎查看。1、主要参数对比参数配置华为nova7SE乐活版华为nova8SE屏幕尺寸6.5英寸6...._华为nova7se可以正常使用华为钱包

Android 录音功能直接拿去用-程序员宅基地

文章浏览阅读95次。前言最近项目中需要用到录音的功能,借鉴了外国一位哥们的项目github.com/dkim0419/So…,搞定需求之后,花了些时间封装成一个录音的工具包,分享给大家,需要源码的 点击这里先贴个效果图给大家看一下,看看这个录音包的功能一、实现录音的 Service这个类可以说是这个包的核心了,如果理解了这个 Service,录音这一块基本就没什么问题了。录音主要是利用 MediaRecod..._mrecorder.setaudioencodingbitrate

【毕业设计/课程设计】基于SSM的二手交易商城的设计与实现(源码+文章) Java | JSP | MVC | Web_二手商城毕设-程序员宅基地

文章浏览阅读229次。系统采用Java语言开发,数据库使用MySql,后端框架采用SSM系统一共分为3个角色,分别是游客、会员、系统管理员。游客端功能:注册、二手商品信息搜索、二手商品信息浏览、求购信息浏览、评论信息浏览。管理员端功能:登录、二手商品审核、二手商品类型管理、用户管理。_二手商城毕设

一位大牛整理的Python 资源_pqr插件 wow-程序员宅基地

文章浏览阅读470次。原文地址:一位大牛整理的Python 资源 作者:helloworld0820zz:一位大牛整理的Python资源(2009-10-10 13:12:40)标签:杂谈 分类:Python来自http://blog.sina.com.cn/s/blog_5d236e060100ep4y.html~type=v5_one&label=rela_n_pqr插件 wow

python抢票代码思路_一百多行python代码实现抢票助手-程序员宅基地

文章浏览阅读811次。一.代码使用Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互。二.安装好Python 3或2都可以,然后安装Splinter`pip install Splinter三.Splinter注意事项1. Splinter的Browser类默认优先使用firefox,所以用chrome的话,需要指定d..._抢票代码

转行python找不到工作怎么办信用卡_转行数据分析,找不到工作怎么办?-程序员宅基地

文章浏览阅读75次。我是一个从本科到研究生一直在读材料工程的学生,用了大约3个月的时间成功转行,想要谈一谈学习心得。以下心得只是以我的个人经历总结而来,仅供参考。本文分为以下几个方面:转行前情况学习过程大致情况数据分析岗位介绍硬技能学习简历和面试技巧一. 在开始学习数据分析之前,我的情况是:国内某211大学本科,学习材料工程,在这个阶段打下了高数和线性代数的底子。国外某QS排名80以内硕士,学习材料工程,在这个阶段打..._python数据分析找不到工作