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

  • 相关阅读:
    shell脚本比较字符串相等
    从自身的经历讨论手工测试与自动化测试
    读《Linux Shell脚本攻略》(第2版) 一遍、二遍体会
    也许开发需要的只是一份简单明了的表格
    linux 命令:tr 的简单使用
    docker的数据持久化
    docker基础操作
    centos7 docker镜像源设置
    DockerUI(图形化管理)
    Docker 常用命令
  • 原文地址:https://www.cnblogs.com/codebook/p/10563168.html
Copyright © 2011-2022 走看看