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

时间:2015-03-19 15:53:33

标签: javascript data-structures ecmascript-6

我有以下JS对象:

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

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

我知道我可以通过使用underscore或一个简单的函数来实现它,但我想知道它们是否是ES6中的一些数据结构,它可以为我提供功能框。

1 个答案:

答案 0 :(得分:4)

不,没有这样的功能 - 您需要创建一个额外的地图副本,其中键和值会反转。

如果使用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);
}