JavaScript中的Map详解

215 阅读1分钟

前言

Map是js中的一种数据结构,它可以用来存储键值对,并且能够保持键值对的插入顺序。

创建Map对象

可以使用new Map()语法来创建一个空的Map对象,或者使用一个可迭代的二维数组作为参数,其中每个子数组表示一个键值对。

let m = new Map([
    ['name', 'A'],
    ['age', 18]
]);

向Map对象中添加、读取、删除和查找元素

可以使用以下方法来操作Map对象中的元素。

  • set(key, value):向Map对象中添加一个新的键值对。
  • get(key):根据键获取对应的值。
  • delete(key):从Map对象中删除指定的键值对。
  • has(key):检查Map对象中是否存在指定的键。
m.set('gender', 'male');
console.log(m.get('name')); // A
m.delete('age');
console.log(m.has('age')); // false

获取Map对象的大小

可以通过size属性获取Map对象中键值对的数量。

console.log(m.size); // 2

Map对象中的特殊键

在Map对象中,键可以是任何数据类型,包括对象、数组和布尔值。

m.set({}, 1); // 键为对象
m.set([], 2); // 键为数组
m.set(true, 3); // 键为布尔值

遍历Map对象

可以使用多种方式来遍历Map对象中的键值对。

  • 使用forEach()方法进行遍历。

    m.forEach((value, key, map) => {
        console.log(value, key);
    });
    
  • 使用for...of循环进行遍历。

    for (let value of m.values()) {
        console.log(value);
    }
    
    for (let key of m.keys()) {
        console.log(key);
    }
    
    for (let entry of m.entries()) {
        console.log(entry);
    }
    

以上介绍了Map对象的创建、操作、大小、特殊键和遍历操作,使用Map对象可以方便地存储键值对,并且可以保持插入顺序。