我有一个列出 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#reduce
和 Object.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/