Set和Map有什么相同和不同之处?

Set 和 Map 都是 ES6(ECMAScript 2015)中引入的两种新的数据结构,它们都属于集合类型,但各自有各自的特点和用法。

相同点:

  1. 键的唯一性:无论是 Set 还是 Map,它们的键(在 Set 中,键和值是一样的)都是唯一的,不会有重复。
  2. 存储对象引用Set 和 Map 都是存储对象引用的,而不是存储对象的副本。

不同点:

  1. 存储的数据结构

    • Set 存储的是键值对,但键和值是相同的。因此,Set 成员的值都是唯一的,没有重复的值。
    • Map 存储的是键值对,键和值可以是任何类型(对象或者原始值),且键是唯一的。
  2. 使用方法

    • Set 主要用于检查一个值是否存在于某个集合中,实现并集、交集和差集等运算。
    • Map 主要是用来存储键值对,并且能通过键快速检索到值。
  3. 迭代顺序

    • Set 的迭代顺序就是元素的插入顺序。
    • Map 的迭代顺序是按照元素被插入时的顺序。

下面是一些具体的代码示例:

Set 的使用:

 
javascriptlet set = new Set();

// 添加元素
set.add(1);
set.add(2);
set.add(2); // 这个元素不会被添加,因为 Set 中的元素是唯一的

console.log(set.size); // 输出 2
console.log(set.has(2)); // 输出 true

// 遍历 Set
for (let value of set) {
console.log(value); // 输出 1 和 2
}

Map 的使用:

 
javascriptlet map = new Map();

// 添加键值对
map.set('key1', 'value1');
map.set('key2', 'value2');
map.set('key2', 'new value2'); // 这个键值对会替换掉原来的键值对

console.log(map.size); // 输出 2
console.log(map.has('key2')); // 输出 true
console.log(map.get('key2')); // 输出 'new value2'

// 遍历 Map
for (let [key, value] of map.entries()) {
console.log(key, value); // 输出 'key1', 'value1' 和 'key2', 'new value2'
}

在上面的代码中,你可以看到 Set 和 Map 的基本使用方式,包括添加元素、检查元素是否存在、获取元素以及遍历元素等。注意,Map 的遍历可以通过 map.entries()map.keys() 和 map.values() 方法分别获取键值对、键和值。

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值