Map对象和Set对象

本文介绍了JavaScript中的Map和Set两种数据结构,包括它们的基本操作如设置、获取、删除和遍历,以及Set的独特性——存储唯一值。同时,文章还比较了数组和Set在删除和存储重复值方面的效率差异。
摘要由CSDN通过智能技术生成

Map对象和Set对象

Map 对象

Map 对象就是一个简单的键/值对映射集合,可以按照数据插入时的顺序遍历所有的元素。

下面的代码演示了使用 Map 进行的一些基本操作。请参考 Map 以获取更多的样例和完整的 API。你可以使用 for...of 循环来在每一次迭代中得到 [key, value] 数组。

const sayings = new Map();
sayings.set("dog", "woof");
sayings.set("cat", "meow");
sayings.set("elephant", "toot");
sayings.size; // 3
sayings.get("dog"); // woof
sayings.get("fox"); // undefined
sayings.has("bird"); // false
sayings.delete("dog");
sayings.has("dog"); // false

for (const [key, value] of sayings) {
  console.log(`${key} goes ${value}`);
}
// "cat goes meow"
// "elephant goes toot"

sayings.clear();
sayings.size; // 0

## Set 对象

Set 对象是一组唯一值的集合,可以按照添加顺序来遍历。Set 中的值只能出现一次;它在集合 Set 中是唯一的。

以下代码演示了 Set 的基本操作,更多示例和完整 API 可以参考 Set

const mySet = new Set();
mySet.add(1);
mySet.add("some text");
mySet.add("foo");

mySet.has(1); // true
mySet.delete("foo");
mySet.size; // 2

for (const item of mySet) {
  console.log(item);
}
// 1
// "some text"

数组和 Set 之间的转换

可以使用 Array.from 或展开语法来完成集合到数组的转换。同样,Set 的构造函数接受数组作为参数,可以完成从 Array 到 Set 的转换。

Array.from(mySet);
[...mySet2];

mySet2 = new Set([1, 2, 3, 4]);

数组和 Set 的对比

一般情况下,在 JavaScript 中使用数组来存储一组元素,而新的 Set 对象有这些优势:

  • 根据值(arr.splice(arr.indexOf(val), 1))删除数组元素效率低下。
  • Set 对象允许根据值删除元素,而数组中必须使用基于元素下标的 splice 方法。
  • 数组的 indexOf 方法无法找到 NaN 值。
  • Set 对象存储唯一值,所以不需要手动处理包含重复值的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值