0Pricing
JavaScript Academy · 课时

Map 与 Set 基础

使用 Map 进行键到值的查找,使用 Set 保存唯一值;进行迭代、转换,并应用一些小型模式

Map 与 Set 基础 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。

为什么使用映射与集合

目标:选择合适的容器。

  • 映射:键→值(键可以是任意类型)
  • 集合:唯一值
  • 迭代与转换
  • 日常使用的小型模式
Map 与 Set 基础 — 插图 1

映射:set/get/has

映射提供 set、get、has、delete、清除操作,以及一个大小属性。

// Map: key→value with any key type
const userToScore = new Map();

// set values
userToScore.set("ayla", 10);
userToScore.set("mina", 15);

// read values
console.log("ayla:", userToScore.get("ayla"));
console.log("has lena?", userToScore.has("lena"));

// size
console.log("size:", userToScore.size);
Map 与 Set 基础 — 插图 2

集合:唯一值

集合只保留每个值的一份副本;重复值会被忽略。

// Set: unique values
const seen = new Set();

// add values (duplicates are ignored)
seen.add("red");
seen.add("blue");
seen.add("red"); // ignored

console.log("size:", seen.size);
console.log("has red?", seen.has("red"));

seen.delete("blue");
console.log("after delete:", seen.size);
Map 与 Set 基础 — 插图 3

为什么使用映射而不是对象

映射会将对象身份保留为键。普通对象会将键强制转换为字符串。

// Map can use objects as keys directly
const key1 = { id: 1 };
const key2 = { id: 1 }; // different reference

const map = new Map();
map.set(key1, "A");

console.log("get key1:", map.get(key1));
console.log("get key2:", map.get(key2)); // undefined (different object)

const obj = {};
obj[key1] = "B"; // coerces key to "[object Object]"
console.log("object key:", obj["[object Object]"]);
Map 与 Set 基础 — 插图 4

转换

从集合创建唯一数组。使用键值对构建映射,再通过 entries() 转换回来。

// Unique array values via Set
const nums = [2, 2, 3, 4, 3];
const unique = Array.from(new Set(nums));
console.log("unique:", unique);

// Map from pairs; back to pairs
const pairs = [["a", 1], ["b", 2]];
const m = new Map(pairs);
console.log("get a:", m.get("a"));
console.log("entries:", Array.from(m.entries()));
Map 与 Set 基础 — 插图 5

需要记住的模式

小型模式:

  • 使用映射记录计数(键 → 数字)。
  • 使用集合快速检查成员资格。
  • 当键不是字符串,或需要保持插入顺序时,优先使用映射。
Map 与 Set 基础 — 插图 6

集合唯一性测验

快速检查:唯一性。

Map 与 Set 基础 — 插图 7

回顾

回顾:使用映射进行键→值查找(键可以是任意类型),使用集合保存唯一值;使用 entries()/Array.from 进行迭代和转换。

Map 与 Set 基础 — 插图 8

常见问题解答

「Map 与 Set 基础」课时是免费的吗?

是的 — 「Map 与 Set 基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 JavaScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 JavaScript Academy 课程共包含 3 节课。

「Map 与 Set 基础」这节课中我会学到什么?

使用 Map 进行键到值的查找,使用 Set 保存唯一值;进行迭代、转换,并应用一些小型模式 你通过在浏览器中直接运行的动手代码来练习 JavaScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 JavaScript Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 JavaScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。

「Map 与 Set 基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 JavaScript Academy 课中编写并运行代码吗?

能。每节 JavaScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Map 与 Set 基础
  2. WeakMap 与 WeakSet——简单的隐私保护与缓存
  3. 迭代模式
← 返回 JavaScript Academy