js实现字典
实现字典的常见方法
在JavaScript中,字典通常通过对象(Object)或Map数据结构实现。以下是几种实现方式:
使用普通对象
普通对象是JavaScript中最简单的字典实现方式,键值对存储。

const dictionary = {
"key1": "value1",
"key2": "value2"
};
// 添加元素
dictionary["key3"] = "value3";
// 访问元素
console.log(dictionary["key1"]); // 输出: value1
// 删除元素
delete dictionary["key2"];
使用Map对象
Map是ES6引入的专门用于键值对存储的数据结构,相比普通对象有更多优势。
const dictionary = new Map();
// 添加元素
dictionary.set("key1", "value1");
dictionary.set("key2", "value2");
// 访问元素
console.log(dictionary.get("key1")); // 输出: value1
// 删除元素
dictionary.delete("key2");
// 检查是否存在
console.log(dictionary.has("key1")); // true
使用WeakMap
WeakMap与Map类似,但键必须是对象,且不可枚举。

const dictionary = new WeakMap();
const keyObj = {};
dictionary.set(keyObj, "value1");
console.log(dictionary.get(keyObj)); // 输出: value1
字典操作示例
遍历字典
对于普通对象:
const dict = {a:1, b:2, c:3};
for (const key in dict) {
console.log(key, dict[key]);
}
对于Map:
const dict = new Map([['a',1], ['b',2]]);
dict.forEach((value, key) => {
console.log(key, value);
});
清空字典
// 对象
const objDict = {a:1};
objDict = {}; // 或
for (const key in objDict) {
delete objDict[key];
}
// Map
const mapDict = new Map();
mapDict.clear();
选择建议
- 需要简单键值存储时使用普通对象
- 需要维护键值对的插入顺序时使用Map
- 键需要是非字符串类型时使用Map
- 需要避免内存泄漏时考虑WeakMap






