ES6 类型来表示一个可以反转的键值对象

ES6 Type to represent a key-value object that can be inverted

我有以下 JS 对象:

var obj={
  "j":"jack",
  "f":"franck",
  "a":"amy",
};

现在我可以编写 obj[val] ,其中 valj,f,a 中以访问该键的值。我想知道它们是否是允许我从值中获取键的数据结构(在 ES6 中)(例如,写 obj.inverted()["jack"] 以获得 j)。

我知道我可以通过使用 underscore 或一个简单的函数来做到这一点,但我想知道它们是否是 ES6 中的某种数据结构,可以给我这个 feature开箱即用。

不,没有这样的功能 - 您需要创建一个额外的键值对映射副本。

如果使用 ES6,当然应该使用适当的 Map 对象而不是 Object:

var myMap = new Map([
  ['j', 'jack'],
  ['f', 'franck'],
  ['a', 'amy']
]);
var inverse = new Map();

for (let [key, value] of myMap.entries()) {
    inverse.set(value, key);
}