JavaScript Set 与 Map 深入
ES6 Set/Map:Set(唯一值集合/add/delete/has/size/clear/遍历/交集new Set([...a].filter(x=>b.has(x)))/并集/差集、Map(键值对/键可以是任意类型对象函数/get/set/has/delete/size/entries遍历/forEach)、WeakSet/WeakMap弱引用GC友好/不可枚举 · 难度:入门 · +10XP
JavaScript Set 与 Map —— 更强大的集合类型
Set(唯一值集合)和Map(键值对,键可以是任意类型)是ES6引入的两种新集合类型,比数组和对象更适合特定场景。Set自动去重,Map的键可以是对象。
Set
const set = new Set([1, 2, 2, 3]); // {1, 2, 3} 自动去重
set.add(4).has(2); // true
set.delete(3);
// 交集
const intersection = new Set([...a].filter(x => b.has(x)));Map
const map = new Map();
const objKey = { id: 1 };
map.set(objKey, '对象作为键'); // 普通对象做不到!
map.set('name', '小明').get('name'); // '小明'
for (const [key, value] of map) { console.log(key, value); }动手练习
- 基础练习:用Set实现数组去重。
- 进阶应用:用Map实现一个LRU缓存。
- 项目实战:在项目中用Map替代对象存储动态键的数据。