如何在 JavaScript 中创建地图的浅表副本

在 JavaScript 中创建 Map 的浅表副本

How to create a shallow Copy of a Map in JavaScript

要创建 a 的浅表副本Map

  1. 将现有的Map作为参数传递给Map()构造函数,例如
    const newMap = new Map(oldMap).
  2. 构造Map()函数接受一个可迭代对象,例如另一个Map,并将键值对添加到新的Map.
索引.js
const oldMap = new Map([ ['name', 'Tom'], ['country', 'Chile'], ]); // 👇️ {'name' => 'Tom', 'country' => 'Chile'} console.log(oldMap); const copy = new Map(oldMap); // 👇️ {'name' => 'Tom', 'country' => 'Chile'} console.log(copy);

我们使用
Map()
构造函数创建现有
Map.

构造函数采用的唯一参数是可迭代对象,例如数组或另一个Map.

iterable 中的元素应该是键值对,例如二维数组或另一个Map对象。

索引.js
const example1 = [ ['name', 'Tom'], ['country', 'Chile'], ]; const example2 = new Map([ ['name', 'Tom'], ['country', 'Chile'], ]);

每个键值对都被添加到新的Map.

Map对象在内存中具有完全不同的引用和位置。向其添加键值对不会与现有的Map.

索引.js
const oldMap = new Map([ ['name', 'Tom'], ['country', 'Chile'], ]); // {'name' => 'Tom', 'country' => 'Chile'} console.log(oldMap); const copy = new Map(oldMap); // 👇️ {'name' => 'Tom', 'country' => 'Chile'} console.log(copy); copy.set('age', 30); // 👇️ {'name' => 'Tom', 'country => 'Chile', 'age' => 30} console.log(copy); // 👇️ {'name' => 'Tom', 'country => 'Chile'} console.log(oldMap);