【ES6】03-Set + Map

devtools/2025/3/17 16:07:39/

本文介绍两种集合 set map 的操作和方法。

目录

1. Set

1.1 set基本使用

1.2 add

1.3 delete

1.4 has

1.5 size

1.6 set转换为数组

1.7 拓展运算符

1.8 for...of

1.9 forEach

1.10 set给数组去重

2. Map

2.1 创建map集合

2.2 set添加元素

2.3 delete删除元素

2.4 has

2.5 size

2.6 map转换为数组

2.7 拓展运算符...

2.8 for...of对map集合遍历

2.9 forEach遍历

2.10 清空map集合


1. Set

1.1 set基本使用

        // 1.set基本使用// 创建set集合let fruits = new Set(['apple','banana','orange']);console.log(fruits);  //Set(3)

1.2 add

        // 2.add添加fruits.add('mango');console.log(fruits);  //Set(4)

1.3 delete

        // 3.deletefruits.delete('banana');  // 指定删除元素console.log(fruits);

1.4 has

        // 4.has判断是否有这个元素console.log(fruits.has('apple'));  //trueconsole.log(fruits.has('banana'));  //false

1.5 size

        // 5.size表示Set集合的大小console.log(fruits.size);  //3

1.6 set转换为数组

        // 6.将set集合转化为数组let arr = Array.from(fruits);console.log(arr);  // 数组类型

1.7 拓展运算符

        // 7.拓展运算符...展开可迭代对象let web = 'baidu.com';  // 中文也能逐字展开// 将上面的内容变为数组let webArr = [...web];console.log(webArr);  // 每一个元素都进行了展开 并存入数组let webArr1 = [...fruits];  // 将set集合展开 每一个元素存入数组console.log(webArr1);   // ['apple', 'orange', 'mango']

1.8 for...of

        // 8.for...of循环遍历 set集合for(let item of fruits){console.log(item);  // 所有的元素打印}

1.9 forEach

        // 9.forEach循环// set集合名.forEach(参数) => {函数体}fruits.forEach((value) => {console.log(value);})// set使用forEach时无法用index打印索引,index打印出来还是他自己本身

1.10 set给数组去重

        // 10.利用set 给 数组 去重let arr1 = [1,1,2,3,3,5,6];  // 有重复数字let set1 = new Set(arr1);  // 将数组转换为set集合console.log(set1);  // 已经去重

2. Map

2.1 创建map集合

        // 1.创建map集合// ([ [],[],[] ])  根据数据类型考虑是否加引号let teacher = new Map([['name','zzz'],['gender','男'],['web','baidu.com']])console.log(teacher);// Map(3) {'name' => 'zzz', 'gender' => '男', 'web' => 'baidu.com'}

2.2 set添加元素

        // 2.set增加元素teacher.set('height',185);console.log(teacher);// Map(4) {'name' => 'zzz', 'gender' => '男', 'web' => 'baidu.com', 'height' => 185}// !!注意:在map中每个键都是唯一的,如果添加的键值对和某个已有的键重复了,则会替换原来的值

2.3 delete删除元素

        // 3.delete删除元素teacher.delete('gender');  // 只删除键即可console.log(teacher);// Map(3) {'name' => 'zzz', 'web' => 'baidu.com', 'height' => 185}

2.4 has

        // 4.has检测是否有对应的键值// 只检测键即可console.log(teacher.has('gender'));  //falseconsole.log(teacher.has('web'));  // true

2.5 size

        // 5.size获取map集合大小console.log(teacher.size);  // 3个键值对

2.6 map转换为数组

        // 6.将map集合转换为数组// 类似set:Array.from(集合名)let arr = Array.from(teacher);  console.log(arr);

2.7 拓展运算符...

        // 7.拓展运算符...将map集合转换为数组let arr1 = [...teacher];console.log(arr1);

2.8 for...of对map集合遍历

        // 8.for...of对map集合的遍历for(let value of teacher){console.log(value);// 遍历了三次 每次打印一个键值对}// 还可以利用解构的方式 从数组或对象中获取值并赋值给变量// [key,value] 是一种解构语法,将map数组中的键值对解构为 key和value 两个变量for(let [key,value] of teacher){console.log(key,value);}

2.9 forEach遍历

        // 9.forEach遍历// 箭头函数形式teacher.forEach((value,key) => {   // 键/索引在后,值在前console.log(key,value);  // 打印时 键在前 值在后});

2.10 清空map集合

        // 10.清空map集合teacher.clear();console.log(teacher);// 清空set集合也可以用这种方法

本文介绍两种集合 set map 的操作和方法。


http://www.ppmy.cn/devtools/167863.html

相关文章

奇安信二面

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

文生图技术的演进、挑战与未来:一场重构人类创造力的革命

摘要 文生图(Text-to-Image Generation)技术作为生成式人工智能(Generative AI)的核心分支,正在以颠覆性力量重塑内容生产范式。本文系统梳理文生图技术从早期实验到多模态大模型的演进路径,分析其在设计、…

读 Gemma 3 二分

读 Gemma 3 二分 flyfish 1. 引言 Gemma 3 是 Google DeepMind 开发的轻量级开源多模态模型,参数规模从 10 亿到 270 亿不等。作为 Gemini 家族的新成员,它在 Gemma 2 的基础上引入了视觉理解能力、多语言支持和超长上下文窗口(最高 128K …

Linux驱动开发实战(四):设备树点RGB灯

Linux驱动开发实战(四):设备树点RGB灯 文章目录 Linux驱动开发实战(四):设备树点RGB灯前言一、驱动实现1.1 驱动设计思路1.2 关键数据结构1.3 字符设备操作函数1.4 平台驱动探测函数1.5 匹配表和平台驱动结…

贪心算法--

1.柠檬水找零 link:860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; code class Solution { public:bool lemonadeChange(vector<int>& bills) {// 贪心算法&#xff0c; 优先花出大面额bill&#xff0c; 尽可能保护小面额billint five 0, ten 0;// 不…

路由器和网关支持边缘计算

路由器和网关可以支持边缘计算&#xff0c;但它们的功能和性能可能有所不同&#xff0c;具体取决于设备的设计和用途。以下是路由器和网关在边缘计算中的作用及其支持方式&#xff1a; 路由器在边缘计算中的作用 网络连接与数据传输 路由器主要负责在网络中传输数据包&#xff…

Cisdem Video Converter for Mac v8.4.1 视频格式转换 支持M、Intel芯片

应用介绍 Cisdem Video Converter 将您的视频和音频文件转换为任何格式&#xff0c;以便在一系列设备上即时播放&#xff0c;支持所有编码格式&#xff0c;包括 H.265/HEVC、H.264、Xvid、VP8、VP9 等&#xff0c;并导出视频在最新的 4K UHD 中。它在不牺牲质量的情况下提供了…

4、linux c 进程

【三】进程 1. 进程与程序的区别 程序&#xff1a;存放在磁盘上的指令和数据的有序集合&#xff08;文件&#xff09;&#xff0c;是静态的。 进程&#xff1a;执行一个程序所分配的资源的总称&#xff0c;是动态的。 2. 进程的组成部分 BSS段&#xff08;bss&#xff09;&…