复制或合并map
Posted codebook
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复制或合并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
以上是关于复制或合并map的主要内容,如果未能解决你的问题,请参考以下文章