迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

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

作者:迹忆客 最近更新:2022/12/18 浏览次数:

要创建 Map 的浅表副本,请将现有 Map 作为参数传递给 Map() 构造函数,例如 const newMap = new Map(oldMap)Map() 构造函数接受一个可迭代对象,例如另一个 Map,并将键值对添加到新 Map。

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);

JavaScript 中创建Map的浅表副本

我们使用 Map() 构造函数来创建现有 Map 的浅表副本。

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

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

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

每个键值对都被添加到新地图中。

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

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);

Javascript 拷贝的map不影响原map

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便