js中生成map对象的方法


在JavaScript中,生成Map对象通常使用`new Map()`构造函数,并可以通过几种方式向其中添加键值对。以下是一些生成和填充Map对象的方法:

### 1. 使用`new Map()`和`set`方法


let myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

console.log(myMap); // 输出:Map(2) {"key1" => "value1", "key2" => "value2"}

### 2. 使用`new Map()`和数组

如果你已经有一个键值对数组,可以直接在`Map`构造函数中使用这个数组来初始化Map对象。数组中的每个元素也应该是数组,包含两个元素:键和值。


let myMap = new Map([
  ['key1', 'value1'],
  ['key2', 'value2']
]);

console.log(myMap); // 输出:Map(2) {"key1" => "value1", "key2" => "value2"}

### 3. 使用展开运算符(Spread Operator)

如果你已经有一个Map对象,并想基于它创建一个新的Map对象(例如,复制它),你可以使用展开运算符。


let originalMap = new Map([
  ['key1', 'value1'],
  ['key2', 'value2']
]);

let newMap = new Map([...originalMap]);

console.log(newMap); // 输出:Map(2) {"key1" => "value1", "key2" => "value2"}

注意:虽然这里使用了数组字面量`[...]`来包裹`originalMap`,但实际上展开运算符`...`在这里直接作用于`Map`对象,将其内容(键值对)展开为数组,然后这个数组被用作新`Map`对象的初始化数据。

### 4. 使用`Object.entries()`

如果你有一个对象,并想基于这个对象的键值对来创建一个Map对象,你可以使用`Object.entries()`方法将对象的键值对转换为数组,然后使用这个数组来初始化Map对象。


let myObject = {
  key1: 'value1',
  key2: 'value2'
};

let myMap = new Map(Object.entries(myObject));

console.log(myMap); // 输出:Map(2) {"key1" => "value1", "key2" => "value2"}

以上就是JavaScript中生成Map对象的几种方法。