反转 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())
这对我来说实际上既简洁又直接 - 将地图转换为序列,将其反转,再转换回地图。
假设我创建了一个这样的地图对象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())
这对我来说实际上既简洁又直接 - 将地图转换为序列,将其反转,再转换回地图。