在JavaScript中,Map
是一种内置的对象,它允许你以键值对的形式存储数据,其中键可以是任何值(包括对象)。与普通的JavaScript对象相比,Map
提供了更多的灵活性和功能,比如可以有多个相同的值,但每个键必须唯一,而且Map
会维持元素的插入顺序。
创建Map
你可以通过多种方式创建一个新的Map:
- 使用构造函数
let map = new Map();
- 从数组构建 如果你有一个键值对数组,可以通过传递给Map构造函数来创建Map。
let map = new Map([
['key1', 'value1'],
['key2', 'value2'],
// ...
]);
- 从另一个Map或Iterable对象
let map1 = new Map([['key1', 'value1']]);
let map2 = new Map(map1);
常用方法
- set(key, value):添加或更新键值对。
map.set('key3', 'value3');
- get(key):根据键获取对应的值。
let value = map.get('key1');
- has(key):检查Map中是否存在某个键。
let exists = map.has('key1');
- delete(key):删除指定键及其对应的值。
map.delete('key1');
- clear():清空Map中的所有键值对。
map.clear();
- size:返回Map中的键值对数量。
let count = map.size;
- keys(), values(), entries():分别返回包含所有键、值、键值对的迭代器,常用于遍历。
遍历Map
可以使用for...of
循环遍历Map,或者通过其迭代器方法:
// 遍历键值对
for(let [key, value] of map) {
console.log(key, value);
}
// 只遍历键
for(let key of map.keys()) {
console.log(key);
}
// 只遍历值
for(let value of map.values()) {
console.log(value);
}
Map是处理键值对数据结构时的一个强大工具,尤其在需要保持插入顺序或者使用非字符串作为键时更为有用。
Was this helpful?
0 / 0