Set 数据结构

news/2024/9/25 17:14:58/
一、概念

Set 是一种叫【集合(由一堆无序、相关联且不重复的内部结构组成的组合,以[值,值的形式储存])】的数据结构。

二、
1、可用于数组去重
const set = new Set([1, 2, 3, 4, 4]);
console.log([...set]); // [1,2,3,4]
console.log(Array.from(set)); // [1,2,3,4]
2、方法:增删改查
  • add()
  • delete()
  • has()
  • clear()
const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]);items.size  // 5
items.add(12) // true
items.delete(1) // true
items.has(5) // true
items.clear() // 清空 无返回值 
3、遍历
  • keys() 返回键名。

  • values() 返回键值。

  • entries() 返回键值对。
  • forEach() 使用回调函数遍历每个成员。
let set = new Set(['red', 'green', 'blue']);for (let item of set.keys()) {console.log(item); // red green blue
}for (let item of set.values()) {console.log(item); // red green blue
}for (let item of set.entries()) {console.log(item); // ['red','red'] ['green','green'] ['blue','blue']
}let set1 = new Set([1, 4, 9]);
set1.forEach((value, key) => console.log(key + ' : ' + value))
// 1 : 1
// 4 : 4
// 9 : 9
4、应用
let a = new Set([1, 2, 3, 2, 3]);
let b = new Set([4, 3, 2]);// 并集
let union = new Set([...a, ...b]);
console.log(union)// Set {1, 2, 3, 4}// 交集
let intersect = new Set([...a].filter((x) => b.has(x)));
console.log(intersect)// set {2, 3}// (a 相对于 b 的)差集
let difference1 = new Set([...a].filter((x) => !b.has(x)));
console.log(difference1) // Set {1}// (b 相对于 a 的)差集
let difference2 = new Set([...b].filter((x) => !a.has(x)));
console.log(difference2) // Set {4}


http://www.ppmy.cn/news/1470348.html

相关文章

VSCode 安装Remote-SSH

1、打开扩展商店安装Remote-SSH 快捷键:CtrlShiftX 2、配置ssh连接 打开命令面板(CtrlShiftP) 输入"Remote-SSH: Connect to Host"并选择。 输入你的Ubuntu服务器的IP地址或主机名。 3、连接到ubuntu服务器 如果是第一次连接&…

重庆思庄技术分享——启动Oracle下最小追踪日志

启动Oracle下最小追踪日志 11g默认是关闭的: SQL> select supplemental_log_data_min from v$database; SUPPLEME -------- NO 打开方式: SQL> alter database add supplemental log data; Database altered. SQL> select supplemental_log_d…

局域网共享文件夹怎么加密?方法很简单

局域网共享文件夹是企业内部信息、数据传递沟通的重要工具,而为了保护共享文件夹数据安全,我们需要使用专业的加密软件加密保护局域网共享文件夹。下面我们就来了解一下局域网共享文件夹加密方法。 局域网共享文件夹加密 在加密共享文件夹时&#xff0c…

whisper 模型源码解读

whisper官方源码 whisper 模型官方代码:https://github.com/openai/whisper/blob/main/whisper/model.py ;注释如下 import base64 import gzip from dataclasses import dataclass from typing import Dict, Iterable, Optionalimport numpy as np impo…

微信聊天记录导出为电脑文件实操教程(附代码)

写在前面 最近,微信中加的群有点多,信息根本看不过来。如果不看,怕遗漏了有价值的信息;如果一条条向上翻阅,实在是太麻烦。 有没有办法一键导出所有聊天记录? 一来翻阅更方便一点,二来还可以…

国际期货行情相关术语

1)合约:期货行情表提供了期货交易的相关信息 ,行情表中每一个期货合约都有合约代码(由期货合约交易代码和合约到期月份组成)来标识。 (2)开盘价:当日某一期货合约交易开始前五分钟集…

QT——事件

一、什么是事件 在QT中,事件(Event)是指由特定对象发生的动作或状态变化,通常用于响应用户的操作。事件可以是鼠标点击、键盘输入、窗口移动等用户操作,也可以是系统发出的信号,比如定时器超时、网络数据到达等。在QT中,可以通过连接信号与槽(Signals and Slots)的方…

服务器被墙是什么原因,怎么解决服务器被墙

服务器被墙通常是由于以下几个原因: 网络监管:某些国家或地区会对网络进行严格的监管,包括对特定网站、应用程序或服务进行屏蔽或封锁。这种情况下,服务器可能会被封锁,导致无法访问。 安全问题:服务器被发…