反转ES6地图

时间:2016-06-01 14:27:17

标签: javascript arrays dictionary ecmascript-6 reverse

假设我创建了一个像这样的Map {"a" => "apple", "b" => "banana"}

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

现在我要反转它并获得Map {"b" => "banana", "a" => "apple"}

我认为唯一的方法如下:

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

看起来既不简洁也不简单。有更好的方式吗?

2 个答案:

答案 0 :(得分:12)

您可以删除.entries()调用,因为它仍然是地图的默认迭代器:

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

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

答案 1 :(得分:9)

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

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

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