使用 JavaScript 合并地图对象
How to merge Maps using JavaScript
要合并 Maps,请使用扩展运算符 (…) 将两个或多个 Maps 的值解包到一个数组中,并将它们传递给Map()
构造函数,例如
new Map([...map1, ...map2])
. 新的将包含来自所有提供的对象Map
的键值对。Map
索引.js
const map1 = new Map([['name', 'Tom']]); const map2 = new Map([['age', 30]]); const map3 = new Map([...map1, ...map2]); // 👇️ {'name' => 'Tom', 'age' => 30} console.log(map3);
我们使用
扩展运算符 (…)
将 2 个对象的键值对解包Map
到一个数组中。
索引.js
const map1 = new Map([['name', 'Tom']]); // 👇️ [ ['name', 'Tom'] ] console.log([...map1]);
该数组包含由键值对组成的嵌套数组。
最后一步是将数组传递给
Map()
构造函数,该构造函数采用可迭代对象作为参数。
有了这些值,示例如下所示:
索引.js
const map3 = new Map([['name', 'Tom'], ['age', 30]])
可迭代对象Map
必须由键值对组成,例如二维数组或另一个Map
对象。
Map
可以根据需要对尽可能多的对象重复此过程。
索引.js
const map1 = new Map([['name', 'Tom']]); const map2 = new Map([['age', 30]]); const map3 = new Map([['country', 'Chile']]); const map4 = new Map([...map1, ...map2, ...map3]); // 👇️ {'name' => 'Tom', 'age' => 30, 'country' => 'Chile'} console.log(map4);
请注意,键的插入顺序被保留。如果您需要重新排序键值对,只需切换使用展开运算符 (…) 的顺序即可。