[JavaScript] Objectのkeyに変数を使う方法

環境・状況

Electron 環境上で Windows なら「Ctrl+B」、macOS 環境なら「Cmd+B」というキー操作を同一のオブジェクトとして定義したい。

  • Windows: Ctrl+B
  • macOS: Cmd+B

方法

const isWindows = process.platform === 'win32';
const controlKey = isWindows ? 'Ctrl' : 'Cmd';

const obj = {
  [`${controlKey}-B`]: {
    // Ctrl+B or Cmd+B
    option: true,
    shift: true,
  },
};

[{${変数名}]とすることでObjectkey名に変数を使うことができる。

Electron 環境であったのは OS の切り替えという理由だけであるので、通常の JavaScript 実行環境でもモダン環境であれば同様の実装方法で実現可能である。