【发布时间】:2016-06-01 14:27:16
【问题描述】:
假设我创建了一个像 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());
这看起来既不简洁也不直截了当。有没有更好的方法?
【问题讨论】:
-
您认为“更好”究竟是什么?也许只是将该代码放入函数中?
function reverseMap(map) { ... }。没有人需要知道丑陋的真相...... -
如果您非常关心地图的顺序,我建议您首先使用数组。
Maps 实际上的排序只是为了在引擎之间具有确定性和一致性,而不是您手动排序。 -
@Bergi 我使用 Map,因为我需要唯一的键:每个键的集合中只有一个可能的值。
标签: javascript arrays dictionary ecmascript-6 reverse