假设我创建了一个像这样的Map {"a" => "apple", "b" => "banana"}
:
m = new Map([ ["a", "apple"], ["b", "banana"] ]);
现在我要反转它并获得Map {"b" => "banana", "a" => "apple"}
我认为唯一的方法如下:
new Map(Array.from(m.entries()).reverse());
看起来既不简洁也不简单。有更好的方式吗?
答案 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]);