复制或合并map

1.map之间实现复制或合并

复制代码
{ // Map 能像数组一样被复制:
    let original = new Map([
        [1, 'tom']
    ]);
    let clone = new Map(original);
    console.log(clone); // Map(1) {1 => "tom"}
    console.log(clone.get(1)); // tom
    console.log(clone === original); // false  浅copy 数据本身未被克隆
}

{ // Map对象间可以进行合并,但是会保持键的唯一性。
    let test = {name: 'jack', age: 20};
    let one = new Map([
        ["a", "tom"],
        ["b", "jack"],
        ["c", test],
    ]);
    let two = new Map([
        ['a', 'undo'],
        ["b", "home"]
    ]);

    // 合并两个Map对象时,如果有重复的键值,则后面的会覆盖前面的。
    // 展开运算符本质上是将Map对象转换成数组。
    let merged = new Map([...one, ...two]);

    console.log(merged); // Map(3) {"a" => "undo", "b" => "home", "c" => {…}}
}

{ // Map对象也能与数组合并:
    let one = new Map([
        ["a", "tom"],
        ["b", "jerry"],
        ["c", "dog"]
    ]);
    let two = new Map([
        ["a", 'how'],
        ["b", 'are']
    ]);
    // Map对象同数组进行合并时,如果有重复的键值,则后面的会覆盖前面的。
    let merged = new Map([...one, ...two, ["a", "YOU"]]);
    console.log(merged); // Map(3) {"a" => "YOU", "b" => "are", "c" => "dog"}
}
复制代码

2.map与数组的关系

var kvArr = [["key1", "value1"], ["key2", "value2"]];

// 使用常规的Map构造函数可以将一个二维键值对数组转换成一个Map对象
var map = new Map(kvArr);

console.log(map.get("key1")); // value1
console.log(map.get("key2")); // value2

3.备注

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map

posted @   小方块的世界  阅读(1174)  评论(0)    收藏  举报
编辑推荐:
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
阅读排行:
· .NET周刊【4月第1期 2025-04-06】
· 工良出品 | 长文讲解 MCP 和案例实战
· 国产的 Java Solon v3.2.0 发布(央企信创的优选)
· 多年后再做Web开发,AI帮大忙
· centos停服,迁移centos7.3系统到新搭建的openEuler
点击右上角即可分享
微信分享提示