Key Sequence Detection


Day12-Key Sequence Detection


CODE

実装:パスワード入力機能の実装
1)入力文字列を格納する配列に一致するパスワードを変数ごとに割り当てます.
const pressed = [];
const answer = "answer";
2)Keyupイベント発生時にpressureに割り当てられた配列にキーを保存する
window.addEventListener("keyup", (e) => {
  pressed.push(e.key);
});
  • 「a」を押すと=["a],
  • となる.
    3)pressureに格納されている要素の数がパスワード文字列の長さを超えている場合、splice()を使用して最初に配列に入った値を削除します.
    window.addEventListener("keyup", (e) => {
      pressed.push(e.key);
      pressed.splice(-answer.length - 1, pressed.length - answer.length);
    });

  • 「a」、「n」、「s」、「w」、「e」、「l」と入力した場合に「r」と入力すると、最初にアレイに入った「a」は削除され、「r」はアレイに追加され、「n」、「s」、「w」、「e」、「l」、「r」となる

  • 「a」、「n」、「s」、「w」、「e」、「l」と入力した場合に「r」と入力すると、pressedは「a」、「n」、「s」、「w」、「e」、「l」、「r」となる.
  • pressed.splice(-7, 1);
    文字「a」が削除されます
    4)すべての入力値を押した配列に接続し、パスワードに一致する場合cornify add()を実行します.
    window.addEventListener("keyup", (e) => {
      pressed.push(e.key);
      pressed.splice(-answer.length - 1, pressed.length - answer.length);
      if (pressed.join("").includes(answer)) {
        console.log("DING DING!");
        cornify_add();
      }
    });