언어별 학습 자료/Javascript

"# JavaScript 30" 강의 - 12. Key Sequence Detection

CarpediemMementomori 2020. 10. 20. 13:18

학습일자

2020.10.20

 

학습내용

- 일정 키의 연속 패턴을 입력했을 때, 어떤 이벤트가 발생하도록 하는 내용( ex> 게임 기술 동작)

 

 

알게된 점

- '.join'은 배열 원소 텍스트를 하나의 텍스트로 묶어주는 것이고, '.concat'은 2이상의 배열을 하나의 배열로 묶어주는 것임

- '.splice(시작점 인덱스, 개수)'에서 시작점이 음수인 경우 배열의 끝에서부터 요소를 세어나감 (원점 -1, 즉 -n이면 요소 끝의 n번째 요소를 가리키며 array.length - n번째 인덱스와 같음). 값의 절대값이 배열의 길이 보다 큰 경우 0으로 설정

- .'splice'는 제거된 배열이 아니라, 제거한 배열을 반환함.  잘리고 남은 배열에는 제거된 나머지 요소들의 배열이 남음.

- 음수인 경우, 맨 마지막이 -1이 되고, 숫자 카운트는 오른쪽 -> 왼쪽방향으로 세어가며 제거하므로, length -1이 되어야 함. (약간 헷갈림- 유의)

 

const pressed = [];
const secretCode = 'wesbos';

window.addEventListener('keyup', (e) => {
  console.log(e.key);
  pressed.push(e.key);
  pressed.splice(-secretCode.length - 1, pressed.length - secretCode.length);
  if (pressed.join('').includes(secretCode)) {
    console.log('DING DING!');
    cornify_add();
  }
  console.log(pressed);
});