1

次のコードがあります。

!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);

そして、たとえばキーコードの文字列を返す関数を構築したいと思います:

$.keys.toString = function(key){
  switch(key){
    case $.keys.backspace:
      return 'backspace';
  }
};

リストはもちろん大きくなり、$.keys オブジェクトのすべてのキーをサポートします。しかし、$.keys.toString 関数が実際に $.keys 配列を使用して int を文字列に変換する可能性があるので、switch ステートメントを作成する必要はありません。

getKeyFromObjectValue のようなものですか?

手伝ってくれてありがとう :)

4

2 に答える 2

5

キーのリストは一定であるため、反復と反転によって別のリストを簡単に作成できます。

$.keysReversed = {};
$.each($.keys, function(key, value) {
  $.keysReversed[value] = key;  // value as key, key as value
});

現在、$.keysReversed番号/名前のペアが含まれています。これは、呼び出すたびに魔法をかけるよりも高速です。.toString単に戻ることができます$.keysReversed[key]

于 2012-07-19T11:47:05.913 に答える