変数の値に基づいてコードを実行するunicode
場合は、セット内の値の存在を確認するだけで十分です。
簡単な方法は、セットに配列を使用することです
var triggerKeys = [32, 13];
次に、次のように確認します。
if (triggerKeys.indexOf(unicode) >= 0) {
// ...
}
しかし、MDN のドキュメント indexOf
によると、すべてのブラウザーにあるとは限りません。
または、次のようにセットをシミュレートします。
var triggerKeys = {32: true, 13: true};
そしてただ言う
if (unicode in triggerKeys) {
// ...
}
編集
コードの可読性を高めるために、キー名とキー コードを定義するアプローチを続けることができます。
var triggers = {space: 32, enter: 13, tab: 9};
var triggerKeys = ["space", "enter"];
実際のトリガー キー コードは、トリガーから計算されます。
var triggers = {space:"32",enter:"13",tab:"9"};
var triggerKeys = ["space", "enter"];
var triggerKeyCodes = {};
for (var i = 0; i < triggerKeys.length; i += 1) {
triggerKeyCodes[triggers[triggerKeys[i]]] = true;
}
これにより、triggerKeyCodes
オブジェクトは のようになり{32:true, 13:true}
ます。次に、次のように記述できます。
if (unicode in triggerKeyCodes) {
// ...
}
ライブデモ: http://jsbin.com/eqoyag/5/edit
すでにjQueryを使用しているため、adeneoの回答の方が優れています。JavaScript の次のバージョンには、生の JavaScript バージョンをよりクリーンにするいくつかの優れた機能 (内包表記、マップなど) が含まれます。