zoukankan      html  css  js  c++  java
  • 复制或合并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

  • 相关阅读:
    编写一个静态类MyExtensions(看不太懂以后应该学到吧)
    c#
    HTML-表格与表单
    VS学习笔记3 (0413)
    HTML 个人简历模板简易版
    C#语言之二维数组
    C#学习笔记---函数 的理解及总结(入门级)
    c#语言-Split拆分
    c#学习之数组 36选7随机数不重复/折半取余
    VS学习笔记--数组
  • 原文地址:https://www.cnblogs.com/codebook/p/10563168.html
Copyright © 2011-2022 走看看