javascript jQuery获取对象密钥

onl*_*oon 1 javascript jquery

我有以下代码:

!function($){

    $.keys = {
        backspace: 8,
        tab: 9,
        enter: 13,
        escape: 27,
        space: 32,
        pageUp: 33,
        pageDown: 34,
        end: 35,
        home: 36,
        left: 37,
        up: 38,
        right: 39,
        down: 40,
        delete: 46,
        numpadEnter: 108,
        comma: 188
    };

}(window.jQuery);
Run Code Online (Sandbox Code Playgroud)

我想构建一个函数,返回一个键代码的字符串,例如:

$.keys.toString = function(key){
  switch(key){
    case $.keys.backspace:
      return 'backspace';
  }
};
Run Code Online (Sandbox Code Playgroud)

该列表将更大,并支持$ .keys对象的所有键.但是有可能$ .keys.toString函数实际上使用$ .keys数组将int转换为字符串,所以我不必创建switch语句.

像getKeyFromObjectValue这样的东西?

感谢帮助 :)

pim*_*vdb 5

由于键列表是常量,您可以通过迭代和反转来创建另一个列表:

$.keysReversed = {};
$.each($.keys, function(key, value) {
  $.keysReversed[value] = key;  // value as key, key as value
});
Run Code Online (Sandbox Code Playgroud)

现在,$.keysReversed包含数字/名称对.这比你每次打电话时做的更快.toString- 你可以回来$.keysReversed[key].