首页 > 其他分享 >Set集合

Set集合

时间:2023-05-20 23:24:11浏览次数:35  
标签:... Set item set 集合 new

set 集合

一直以来,JS只能使用数组和对象来保存多个数据,缺乏像其他语言那样拥有丰富的集合类型。因此,ES6新增了两种集合类型(set 和 map),用于在不同的场景中发挥作用。

set用于存放不重复的数据

  1. 如何创建set集合
new Set(); //创建一个没有任何内容的set集合

new Set(iterable); //创建一个具有初始内容的set集合,内容来自于可迭代对象每一次迭代的结果

  1. 如何对set集合进行后续操作
  • add(数据): 添加一个数据到set集合末尾,如果数据已存在,则不进行任何操作
    • set使用Object.is的方式判断两个数据是否相同,但是,针对+0和-0,set认为是相等
  • has(数据): 判断set中是否存在对应的数据
  • delete(数据):删除匹配的数据,返回是否删除成功
  • clear():清空整个set集合
  • size: 获取set集合中的元素数量,只读属性,无法重新赋值
  1. 如何与数组进行相互转换
const s = new Set([x,x,x,x,x]);
// set本身也是一个可迭代对象,每次迭代的结果就是每一项的值
const arr = [...s];
  1. 如何遍历

1). 使用for-of循环
2). 使用set中的实例方法forEach

注意:set集合中不存在下标,因此forEach中的回调的第二个参数和第一个参数是一致的,均表示set中的每一项

应用场景

    // 两个数组的并集、交集、差集 (不能出现重复项),得到的结果是一个新数组
    const arr1 = [33, 22, 55, 33, 11, 33, 5];
    const arr2 = [22, 55, 77, 88, 88, 99, 99];

    //并集
    // const result = [...new Set(arr1.concat(arr2))];
    console.log("并集", [...new Set([...arr1, ...arr2])]);

    const cross = [...new Set(arr1)].filter(item => arr2.indexOf(item) >= 0);
    //交集
    console.log("交集", cross)

    //差集
    // console.log("差集", [...new Set([...arr1, ...arr2])].filter(item => arr1.indexOf(item) >= 0 && arr2.indexOf(item) < 0 || arr2.indexOf(item) >= 0 && arr1.indexOf(item) < 0))
    console.log("差集", [...new Set([...arr1, ...arr2])].filter(item => cross.indexOf(item) < 0))

标签:...,Set,item,set,集合,new
From: https://www.cnblogs.com/bingquan1/p/17418005.html

相关文章

  • 洛谷 P9248 - [集训队互测 2018] 完美的集合
    显然,如果选择的\(k\)个“合法集合”固定了,那么可以放置装置的点如果存在,那么必然形成一个连通块,也就是说,答案等于所有合法方案中,可以放置装置的点形成的连通块个数之和。而根据点减边的套路,这等价于,枚举每个点,计算有多少种方案满足可以在其放置装置,再枚举每条边,计算有多少种方案......
  • Family of Solution Sets
      欢迎投歌词!评论告诉我歌曲链接和词就好啦~大概四五天一更?SolutionSet-“卷起击碎定论的漩涡”\(\to\)《夏虫》SolutionSet-“让季节停止哽咽”\(\to\)《凉雨》SolutionSet-“也许我们早已经共鸣在那约定之地”\(\to\)《视星等4.44》SolutionSet-......
  • 详解c++STL—容器set/multiset
    1、set基本概念1.1、功能所有元素都会在插入时自动被排序1.2、本质:set/multiset属于关联式容器,底层结构是用二叉树实现。1.3、set和multiset区别set不允许容器中有重复的元素multiset允许容器中有重复的元素2、set构造和赋值2.1、功能描述创建set容器以及赋值2.1、构造set<T>st;/......
  • 十一、集合
    集合集合:集合就是个容器,用来装东西集合容器的特点1.集合容器的长度是可以变化的2.集合容器只能存储引用数据类型3.一个集合容器中可以存储不同引用数据类型的数据集合容器和数组容器的区别1.集合容器的长度是可以变化的,数组容器一旦初始化长度就不能改变了2.集合容器只能存......
  • 开发手记:Redis中zset查询的range
    问题描述从Redis中查询关注列表(使用zset存储),但是查询到的记录总是比应有的记录数少一个Set<Integer>targetIds=redisTemplate.opsForZSet().reverseRange(key,offset,offset+limit-1);调试于是去检查Redis中置顶键zset中的所有数据,发现自己对zset相关命令似乎并不太......
  • C# 集合
    简介集合表示一组具有某种性质的数学元素,引用到程序设计中表示一组具有相同性质的对象。集合的大小可以动态调整,也可以在运行时添加或删除元素官方文档System.Collections数组集合泛型集合Concurrent线程安全集合System.Collections.Specialized集合基类接口ICollect......
  • 【解决方法】家用路由器的复位/重置(reset)操作,解决管理员后台密码遗忘
    环境:工具:家用路由器系统版本:Windows10问题描述:描述:用户是有线连接到路由器,因为网络出现问题,需要登录到后台,在登录路由器后台时,密码不对,故需要进行重置操作解决方法-视频与文字教程:视频教程:文字教程:1.找到路由器,并查看复位(reset)按钮,路由器复位键有两种类型:RESET按......
  • nginx proxy_set部分常见配置
    目录nginxproxy_set部分常见配置nginxproxy_set部分常见配置proxy_set_headerHost$host;#用途:设置要发送到代理服务器的HTTP请求头的Host字段。$host变量将被替换为客户端请求中的实际主机名。proxy_set_headerConnection"";#用途:清空要发送到代理服务器的HTTP请求头......
  • web安全为主的网页集合
    xrayGitHub-chaitin/xray:一款完善的安全评估工具,支持常见web安全问题扫描和自定义poc|使用之前务必先阅读文档vulhubVulhub-Docker-Composefileforvulnerabilityenvironment ......
  • Hilbert 曲线与集合势理论
    1空间填充曲线1.1曲线(我们所讨论的)曲线:定义域为[0,1]的连续映射.1.2空间填充曲线(我们所讨论的)空间填充曲线的定义:连续满射f:[0,1]→[0,1]2.2Hilbert曲线2.1n阶伪Hilbert曲线Hn(t)理解一:将[0,1]2等分成2n×2n个小方块,按特定顺序将每个小方块的中心点......