Theme NexT works best with JavaScript enabled

ShunNien's Blog

不積跬步,無以致千里;不積小流,無以成江海。

0%

JS30紀錄 12-Key Sequence Detection

目標

此章節也要對照 Console 才能觀看,主要是偵測輸入按鍵,一開始設定一組密碼,例如: wesbos ,當輸入的內容符合到 wesbos 就顯示提示。

Demo | Github

處理步驟

步驟 1.

  • 宣告記錄按鍵的變數陣列 pressed
  • 宣告特殊密碼變數 secretCode

步驟 2.

  • 綁定 keyup 事件
  • 利用 push() 將輸入的按鍵記錄到變數 pressed

步驟 3.

此步驟為重點處理

  • 判斷 pressed 陣列長度是否超過 secretCode
  • 利用 shift() 判斷符合即可移除首位元素
  • 再利用陣列的 join()includes() 判斷是否為密碼

筆記與備註事項

教學說明中使用的 splice() ,不過使用 splice() 需要設定最少一個參數,所以練習的部分就使用 shift()

JavaScript 部分

Array.prototype.splice()

splice() 這方法可刪除或新增一個 Array 的內容。

1
2
3
4
5
6
7
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

myFish.splice(2, 0, 'drum'); // 新增字串'drum' 在第index=2的位置
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]

myFish.splice(2, 1); // 移除第二個位置的物件 (也就是字串"drum")
// myFish is ["angel", "clown","mandarin", "sturgeon"]

資料來源 - MDN

Array.prototype.shift()

shift() 方法 (method) 會從陣列移除第一個元素 (element),並回傳該元素。此方法會改變陣列的長度。

1
2
3
4
var a = [1, 2, 3];
a.shift();

console.log(a); // [2, 3]

資料來源 - MDN

參考資料

歡迎關注我的其它發布渠道