/**
 * キーボードの位置を返します
 * @param layout 対応するレイアウト。空白 ` ` 区切りの文字列の配列
 * @param key 入力。プロパティ `KeyboardEvent.key`
 * @return 位置を配列 `[x, y]` で返します。見つからない場合、空 `[]`
 */
function keyPosition(
  layout: readonly string[],
  key: string
): [number, number] | [] {
  const [x, y] = layout
    .map((row) => row.split(" ").indexOf(key))
    .flatMap((x, y) => (x >= 0 ? [x, y] : []));

  return x >= 0 ? [x, y] : [];
}

export default keyPosition;