map实现js
Map 实现(JavaScript)
在 JavaScript 中,Map 是一种键值对集合,允许任何类型的值(包括对象)作为键,并保持插入顺序。以下是实现和使用 Map 的常见方法。
创建 Map
使用 new Map() 构造函数创建一个空的 Map,或通过传入一个键值对数组初始化。
const map = new Map();
const initializedMap = new Map([
['key1', 'value1'],
['key2', 'value2']
]);
添加键值对
使用 set(key, value) 方法向 Map 中添加或更新键值对。
map.set('name', 'Alice');
map.set(42, 'The Answer');
获取值
通过 get(key) 方法获取指定键对应的值。若键不存在,返回 undefined。

console.log(map.get('name')); // 输出: 'Alice'
console.log(map.get('nonexistent')); // 输出: undefined
检查键是否存在
使用 has(key) 方法检查 Map 中是否存在某个键。
console.log(map.has('name')); // 输出: true
删除键值对
通过 delete(key) 方法移除指定键的键值对。返回 true 表示删除成功,false 表示键不存在。

map.delete('name');
清空 Map
调用 clear() 方法移除所有键值对。
map.clear();
遍历 Map
Map 支持多种遍历方式:
keys():返回键的迭代器。values():返回值的迭代器。entries():返回键值对的迭代器(默认迭代行为)。forEach(callback):通过回调函数遍历。
for (const [key, value] of map) {
console.log(key, value);
}
map.forEach((value, key) => {
console.log(key, value);
});
获取大小
通过 size 属性获取 Map 中键值对的数量。
console.log(map.size);
与 Object 的区别
- 键的类型:
Map的键可以是任意类型(包括对象),而Object的键只能是字符串或 Symbol。 - 顺序:
Map保持插入顺序,Object的键顺序不固定。 - 性能:频繁增删键值对时,
Map性能更优。 - 内置方法:
Map提供如size、clear()等专用方法。
示例代码
const map = new Map();
map.set('a', 1);
map.set('b', 2);
console.log(map.get('a')); // 1
console.log(map.size); // 2
map.delete('a');
console.log(map.has('a')); // false






