ts:Set、Map

news2024/11/15 10:13:42

观看小满老师课程的随笔~

前言

  • 与 原生 js 中的原理和方法是相同的,这里只是用了 ts 中的 强类型

一、Set

  • 天然去重引用类型除外
  • 增删改查:addhasdeleteclear
  • 循环:forEachentrieskeysfor...of(内置的有iterator迭代器)
  • 获取长度: size
// 天然去重,引用类型除外
let set: Set<number> = new Set([1, 2, 3, 1, 2, 3, 4, 5]) // Set(5) {1, 2, 3, 4, 5}

// 引用类型无法去重
let set2 = new Set([1, 2, 3, 1, 2, 3, 4, 5, {a: 1}, {a: 1}]) // Set2(5) {1, 2, 3, 4, 5, Object, Object}

// 长度
console.log('size', set, set.size) // Set(5) {1, 2, 3, 4, 5} 5

// 增加
set.add(7)
console.log(set.has(7)) // true

// 删除
set.delete(5)
console.log(set.has(5)) // false

// 循环
set.forEach(item => {
  console.log('forEach', item)  // 1 2 3 4 7 各打印一次
})

// entries
console.log('entries-----', set.entries())  
// SetIterator {1 => 1, 2 => 2, 3 => 3, 4 => 4, 7 => 7}

// keys
console.log('keys------', set.keys())
// SetIterator {1, 2, 3, 4, 7}

// for of
for (let key of set) {
  console.log('for of---', key) // 1 2 3 4 7各打印一次
}

// 清空 
set.clear()
console.log(set)  // Set(0) {size: 0}

二、Map

  • key 可以是 引用类型,比如数组、对象
  • 增删改查:setgethasdeleteclear
  • 循环:forEachentrieskeysfor...of
  • 获取长度: size
let obj = {
  name: '小满'
}
let arr = [1, 2, 3, 4]

let map:Map<object, any> = new Map()

// 设置
map.set(obj, 123)
map.set(arr, '我是数组')

// 长度
console.log('size-------', map.size) // 2

// 获取
console.log(map.get(obj)) // 123

// 是否包含
console.log(map.has(obj)) // true

// 循环
map.forEach(item => {
  console.log('forEach-----', item)
  // 123
  // 我是数组
})

// entries、keys,打印见下图
console.log('entries--------', map.entries())
console.log('keys--------', map.keys())

// for of:打印见下图
for(let key of map) {
  console.log('for of----', key)
}

// 删除
map.delete(obj)
console.log('map-------', map) // Map(1) {Array(4) => '我是数组'}

// 清空
map.clear()
console.log('map-------', map) // Map(0) {size: 0}

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

CCF-CSP真题《202305-2 矩阵运算》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看&#xff1a;CCF-CSP真题附题解大全 试题编号&#xff1a;202305-2试题名称&#xff1a;矩阵运算时间限制&#xff1a;5.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 题目背景 Softmax(QKTd)V 是 Transformer 中注意力模块的…

javac命令编译.java源文件报错“编码GBK的不可映射字符“

原因在于.java源文件编码方式是UTF-8 二cmd DOS窗口编码格式是GBK 解决办法 javac -encoding UTF-8 *.java

Kettle 实现动态表查询

文章目录 前言动态表名查询数据 :一、获取表名1、新建一个转换getTableName&#xff0c;拖入获取系统信息&#xff0c;字段选择&#xff0c;设置变量2、打开 获取系统信息 编辑界面&#xff0c;填写名称&#xff0c;点击类型选择要获取的信息类型3、打开字段选择&#xff0c;选…

深蓝学院C++基础与深度解析笔记 第 9 章 序列与关联容器

第 9 章 序列与关联容器 1. 容器概述 A、容器&#xff1a; 一种特殊的类型&#xff0c;其对象可以放置其它类型的对象&#xff08;元素&#xff09; – 需要支持的操作&#xff1a;对象的添加、删除、索引、遍历 – 有多种算法可以实现容器&#xff0c;每种方法各有利弊B、容…

nvdiffrecmc在Windows上的配置及使用

nvdiffrecmc是NVIDIA研究院开源的项目&#xff0c;源代码地址&#xff1a;https://github.com/NVlabs/nvdiffrecmc&#xff0c;论文为《Shape, Light, and Material Decomposition from Images using Monte Carlo Rendering and Denoising》&#xff0c;使用Monte Carlo渲染和去…

为什么有些Buck-Boost芯片没有输出负压?

大家好&#xff0c;这里是大话硬件。 今天分享一篇和Buck-Boost拓扑相关的问题&#xff0c;也是在最开始接触Buck-Boost芯片时&#xff0c;就在内心产生了疑问。 在开始学习DC-DC拓扑时&#xff0c;很多资料都说&#xff0c;非隔离型的DC-DC拓扑常见的有3种&#xff0c;分别是…

C语言进阶---文件操作

1、什么是文件 磁盘上的文件是文件 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件。&#xff08;从文件功能的角度来分类的&#xff09;。 1.1、程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;&#xff0c;目标文件&#x…

若依(ruoyi-cloud)脚手架解读,一篇精通,包票上手~

视频教程传送门&#xff1a; 基于SpringCloud Alibaba技术栈&#xff0c;若依微服务版(RuoYi-Cloud)脚手架入门精解&#xff0c;保证上手那种~_哔哩哔哩_bilibili基于SpringCloud Alibaba技术栈&#xff0c;若依微服务版(RuoYi-Cloud)脚手架入门精解&#xff0c;保证上手那种~…

vscode 插件系统的运行机制!

做vscode二次开发有一段时间了&#xff0c;平时都是任务比较重&#xff0c;最近有时间做下总结&#xff0c;详细的讲解下vscode 插件系统的运行机制&#xff0c;vscode做为最受欢迎的编辑器&#xff0c;有着庞大的插件市场。其插件系统确实很复杂&#xff0c;文章很长&#xff…

构建交互式数据集展示:Gradio的Dataset模块详解

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

Visual C++中的引用的具体理解

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊 Visual C中的引用。 在C中有一个引用的概念。引用就是一个变量的别名&#xff0c;它需要用另一个变量或对象来初始化自身。引用就像一个人的外号一样,例如:有一个人的名字叫诸葛大力&#xff0c;…

【压缩空气储能】非补燃压缩空气储能系统集成的零碳排放综合能源优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

软件工程作业创建表

设计表 4.按专业统计课程数量: sql SELECT Major, COUNT(*) AS Num FROM Course GROUP BY Major 5.按专业查询所有课程信息: sql SELECT * FROM Course WHERE Major 信息技术 6.统计“信息技术”专业的课程数量: sql SELECT COUNT(*) FROM Course WHERE Major 信息技术…

SIM长序列处理

原论文&#xff1a;Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction 主要是为了解决长序列带来的计算复杂度问题 解决方法是第一阶段先进性search&#xff0c;有softsearchhardsearch两种方式。 然后用mult-h…

SAP HANA使用SQL创建SCHEMA:

语法是 CREATE SCHEMA “<Schema_Name>” 使用图形方法创建 SAP HANA 表&#xff1a; 创建图形计算视图&#xff1a;

Spring面试题--单例bean是线程安全的吗?

Spring框架中的单例bean是线程安全的吗&#xff1f; 这个问题有一个前提 Spring框架中的bean是单例的吗&#xff1f; 答&#xff1a;是&#xff0c;我们可以通过scope注解来设置当前的bean是不是单例的 singleton : bean在每个Spring IOC容器中只有一个实例。 prototype&am…

LeetCode刷题 | 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

1143. 最长公共子序列 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些…

基于Python所写的今天吃什么小程序

点击以下链接获取源码资源&#xff1a; https://download.csdn.net/download/qq_64505944/87979945 《今天吃什么》程序使用说明 小程序端 启动WhatToEat/WhatToEat下的venv虚拟环境&#xff0c;运行python manage.py runserver命令启动Flask。然后打开微信开发者工具并扫码登…

MongoDB基础入门

目录 【认识MongoDB】 MongoDB的使用场景 MongoDB的结构模型 【安装MongoDB】 MacOS安装MongoDB Windows安装MongoDB 客户端连接 【认识MongoDB】 MongoDB是一个使用C语言编写的基于分布式文件存储的数据库&#xff0c;是一个开源的、高性能、高扩展、无模式的文档型…