JavaScript中的Map和Set集合

news/2024/11/29 2:55:03/

在JavaScript中,MapSet是两种非常有用的数据结构,用于存储和操作一组值。它们提供了不同的功能和用法,可以帮助我们更有效地处理数据。

一.Map集合

Map是一种键值对的集合,其中每个值都有一个相关联的键。与常规的对象不同,Map的键可以是任意类型的值,包括基本数据类型、对象和函数。

// 创建一个新的Map
const map = new Map();// 添加键值对
map.set("key1", "value1");
map.set("key2", "value2");// 获取值
console.log(map.get("key1")); // 输出: "value1"// 检查键是否存在
console.log(map.has("key2")); // 输出: true// 删除键值对
map.delete("key1");// 获取Map的大小
console.log(map.size); // 输出: 1// 清空Map
map.clear();
console.log(map.size); // 输出: 0

Map提供了一组方法来操作集合,包括set()用于添加键值对,get()用于获取值,has()用于检查键是否存在,delete()用于删除键值对,size属性用于获取集合的大小,以及clear()用于清空集合。

另外,Map还具有迭代功能,可以使用forEach()方法或for...of循环遍历集合中的键值对。

map.set("key1", "value1");
map.set("key2", "value2");// 使用forEach()遍历
map.forEach((value, key) => {console.log(`${key}: ${value}`);
});// 使用for...of遍历
for (const [key, value] of map) {console.log(`${key}: ${value}`);
}

二.Set集合

Set是一种不重复值的集合,它只存储唯一的值,不允许重复。与Map类似,Set中的值可以是任意类型的值。

// 创建一个新的Set
const set = new Set();// 添加值
set.add("value1");
set.add("value2");
set.add("value3");
set.add("value3"); // 重复的值将被忽略// 获取Set的大小
console.log(set.size); // 输出: 3// 检查值是否存在
console.log(set.has("value2")); // 输出: true// 删除值
set.delete("value1");// 清空Set
set.clear();
console.log(set.size); // 输出: 0

Set提供了一组方法来操作集合,包括add()用于添加值,has()用于检查值是否存在,delete()用于删除值,size属性用于获取集合的大小,以及clear()用于清空集合。

Map一样,Set也具有迭代功能,可以使用forEach()方法或for...of循环遍历集合中的值。

set.add("value1");
set.add("value2");// 使用forEach()遍历
set.forEach((value) => {console.log(value);
});// 使用for...of遍历
for (const value of set) {console.log(value);
}

三.总结

MapSet是JavaScript中常用的集合类型,它们提供了方便的方法来存储和操作数据。Map适用于需要存储键值对的场景,而Set适用于存储唯一值的场景。无论是遍历集合、检查值是否存在还是删除特定的键值对或值,它们都提供了一致且易于使用的API。


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

相关文章

全国青少年软件编程(Scratch)等级考试一级考试真题2023年5月——持续更新.....

一、单选题(共25题,共50分) 1.看图找规律,请问下图红框中是?( ) A. B. C. D. 标准答案:D 试题解析:通过观察每种图形有两个,所以选择D 2.用一根绳子绕树一圈余30厘米&#x…

关于游戏引擎

1.真是不错!国外廉价引擎评价最好的两个是 Turque 、Truevision3D,免费开源引擎评价最好的是 OGRE 和 IrrLicht ,综合考虑起来, OGRE 还不是个完整的游戏引擎,它首先只是个图形渲染引擎&#xf…

Elasticsearch搜索与排序经验小记

最近维护公司的APP搜索项目,在实际需求中,领导对搜索关心两方面,第一要搜出来,第二排序要符合人的搜索习惯,最近一段时间的搜索经验记录下来分享一下。 ‘牛奶木瓜’ 是怎么搜出来的? 先来说说Elasticsea…

《连线》:平板电脑改变世界

【CSDN编者按】 4月《连线》杂志封面文章How the Tablet Will Change the World分析了平板电脑对计算机行业的意义,以及苹果、Google和微软的平板电脑战略的异同。 作者是著名技术媒体记者Steven Levy(名著Hackers的作者)。以下是全文翻译&…

开源3d游戏引擎的一些了解

以下内容转自http://www.yanchen.com燕尘小筑,嗯,按自已想看的大概整理了下的:) 1. 真是不错!国外廉价引擎评价最好的两个是 Turque 、Truevision3D,免费开源引擎评价最好的是 OGRE 和 IrrLicht &#xff…

/LGC设计模式/游戏引擎评价

游戏引擎评价 作者: 网络 日期: 2009-03-16 本文对目前常用的游戏引擎做了评价,包括图形引擎、物理引擎,开源的、商业的,并介绍了 CEGUI。 国外廉价引擎评价最好的两个是 Turque 、Truevision3D,免费开源引擎评价最好的是 OGRE 和…

一篇不错的关于ogre相关技术的解释(转载)

1.真是不错!国外廉价引擎评价最好的两个是 Turque 、Truevision3D,免费开源引擎评价最好的是 OGRE和 IrrLicht ,综合考虑起来, OGRE 还不是个完整的游戏引擎,它首先只是个图形渲染引擎&#xff…

NVIDIA近年演示程序回顾

DEMO中的“90后”--NVIDIA近年演示程序回顾 1.DX技术--显卡的支柱 如果说以“御宅”、“NEET”为代表的80后已然过时的话,那以“前卫”“非主流”为其特点的90后文化必然站在了舆论舞台的前列。不仅是人文文化,在以电脑为主载媒体的IT界,也有…