反转 ES6 映射

Reverse an ES6 Map

假设我创建了一个这样的地图对象Map {"a" => "apple", "b" => "banana"}:

m = new Map([ ["a", "apple"], ["b", "banana"] ]);

现在我想反转它得到Map {"b" => "banana", "a" => "apple"}

我看到唯一的方法如下:

new Map(Array.from(m.entries()).reverse());

看起来既不简洁也不直接。有更好的方法吗?

new Map([...m].reverse());怎么样?

let m = new Map([['a', 'apple'], ['b', 'banana']]);
let r = new Map([...m].reverse());

console.log([...m]);
console.log([...r]);

您可以放弃 .entries() 调用,因为无论如何这是地图的默认迭代器:

new Map(Array.from(m).reverse())

这对我来说实际上既简洁又直接 - 将地图转换为序列,将其反转,再转换回地图。