let map = new Map()

在JavaScript中,Map 是一种内置的数据结构,用于存储键值对(key-value pairs)。与普通对象相比,Map 有一些独特的特性,例如它允许任何类型的值作为键,并且可以轻松地获取键的数量等。
以下是一个关于如何使用 Map 的基本示例:

创建一个 Map

JavaScript复制
let map = new Map();

添加键值对

JavaScript复制
map.set('key1', 'value1');
map.set('key2', 'value2');
map.set(1, 'number key');
map.set({ key: 'object' }, 'object key');

获取值

JavaScript复制
console.log(map.get('key1')); // 输出:value1
console.log(map.get(1));      // 输出:number key
console.log(map.get({ key: 'object' })); // 输出:undefined,因为对象的引用不同

检查键是否存在

JavaScript复制
console.log(map.has('key1')); // 输出:true
console.log(map.has('key3')); // 输出:false

删除键值对

JavaScript复制
map.delete('key2');
console.log(map.has('key2')); // 输出:false

清空 Map

JavaScript复制
map.clear();
console.log(map.size); // 输出:0

遍历 Map

JavaScript复制
map.set('key1', 'value1');
map.set('key2', 'value2');

// 遍历键
for (let key of map.keys()) {
  console.log(key); // 输出:key1, key2
}

// 遍历值
for (let value of map.values()) {
  console.log(value); // 输出:value1, value2
}

// 遍历键值对
for (let [key, value] of map) {
  console.log(`${key}: ${value}`); // 输出:key1: value1, key2: value2
}

使用数组初始化 Map

JavaScript复制
let mapFromArray = new Map([
  ['key1', 'value1'],
  ['key2', 'value2']
]);

console.log(mapFromArray.get('key1')); // 输出:value1

注意事项

  1. 键的唯一性:Map中的键是唯一的,如果尝试用相同的键调用set方法,会覆盖之前的值。
  2. 键的类型:Map允许任何类型的值作为键,包括对象、函数等。
  3. 与普通对象的区别:
    • Map的键可以是任何类型,而普通对象的键通常是字符串或Symbol。
    • Map的键值对数量可以通过size属性直接获取,而普通对象需要手动计算。
    • Map是迭代器,可以直接用for...of循环遍历,而普通对象需要使用Object.keys等方法。
Map 是一个非常强大的数据结构,适用于需要存储键值对且对键的类型没有限制的场景。
posted @ 2025-04-09 18:29  yinghualeihenmei  阅读(13)  评论(0)    收藏  举报