javascript - 使用 JavaScript 中的值获取属性

标签 javascript object

我有一个列出 keyCodes 的对象:

var keyCodes = {
    "a": 97, "b": 98, "c": 99, "d": 100, "e": 101, "f": 102,
    "g": 103, "h": 104, "i": 105, "j": 106, "k": 107, "l": 108,
    "m": 109, "n": 110, "o": 111, "p": 112, "q": 113, "r": 114,
    "s": 115, "t": 116, "u": 117, "v": 118, "w": 119, "x": 120,
    "y": 121, "z": 122
};

但我需要引用值,而不是属性。我能做多高效 这没有重写整个对象?

最佳答案

生成一个新对象,其中属性名称是值,值是属性名称,其中使用 Array#reduceObject.keys生成新对象的方法。

var keyCodes = {
    "a": 97, "b": 98, "c": 99, "d": 100, "e": 101, "f": 102,
    "g": 103, "h": 104, "i": 105, "j": 106, "k": 107, "l": 108,
    "m": 109, "n": 110, "o": 111, "p": 112, "q": 113, "r": 114,
    "s": 115, "t": 116, "u": 117, "v": 118, "w": 119, "x": 120,
    "y": 121, "z": 122
  };

var res = Object.keys(keyCodes).reduce(function(obj, k) {
  obj[keyCodes[k]] = k;
  return obj;
}, {})

console.log(res[121])
console.log(res[106])
console.log(res[110])

关于javascript - 使用 JavaScript 中的值获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42382707/

相关文章:

class - 在Groovy中分配对象属性的简便方法?

javascript - 无法通过单击 id 来提醒 id 按钮

c# - 错误 : Object reference not set to an instance of an object

c# - 如果对象是 SomeType 与 object as SomeType

javascript - 如何将对象中的所有属性值转换为字符串类型?

C++ 静态成员,多个对象

Javascript 动画循环不会停止

javascript - 为什么当函数返回false时表单仍然可以提交?

javascript - 滚动指示器 JavaScript

javascript - 关于 Javascript 范围和提升的混淆