浏览:1002 时间:2025-09-18
Map是JavaScript ES6引入的一种键值对集合数据结构,允许使用任何数据类型作为键(包括对象和原始值)。
const map = new Map();
map.set('name', 'John');
map.set(1, 'number one');
map.set({}, 'object key');
map.forEach((value, key) => {
console.log(key, value);
});
for (let [key, value] of map) {
console.log(key, value);
}
Set是存储唯一值的集合,自动去重,不允许重复值。
const set = new Set();
set.add(1);
set.add(2);
set.add(1); // 重复值不会被添加
set.forEach(value => {
console.log(value);
});
for (let value of set) {
console.log(value);
}
| 特性 | Map | Set |
|---|---|---|
| 数据结构 | 键值对集合 | 唯一值集合 |
| 存储方式 | key-value pairs | values only |
| 重复处理 | 键唯一,值可重复 | 值唯一,自动去重 |
| 主要用途 | 需要键值映射的场景 | 需要存储唯一值的场景 |
| 初始化 | new Map([[key1, value1], [key2, value2]]) | new Set([value1, value2, value3]) |
Map和Set在查找、添加、删除操作上的性能通常优于普通对象和数组,特别是在大数据量情况下表现更明显。
总结:Map适合键值对存储,Set适合唯一值存储,根据具体需求选择合适的数据结构能提高代码效率和可读性。