티스토리 뷰

javascript30

12 - Key Sequence Detection

주먹불끈 2019. 3. 15. 15:24

개요

 

간단한 강좌이다.

특정 조합을 타이핑하면 정해둔 액션이 실행된다.

 

1) 입력 이벤트 ('key up') 시에 이를 받아서 저장하고

2) 특정 패턴이 있는지 체크하는 것을 배우게 된다.

- 도어락의 허수 기능처럼 수도 있겠다.

 

 

내용

 

1) cornify

 

- js 파일 링크: http://www.cornify.com

- cornify_add() 실행하면 랜덤한 유니콘 이미지가 브라우저 회면에 나타난다.

 

2) .splice() 함수

 

- splice 개를 꼬아서 붙인다 정도의 뜻이다.

- 사용법

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

- start 인덱스부터

- deleteCount 개수만큼 삭제: 0이면 삭제안함 (optional)

- item1, item2, ... 만큼 삽입한다. (optional)

반환값은 삭제된 요소를 담은 배열. 삭제된 것이 없다면 배열

 

여기서는

- start -6-1 = -7

- deleteCount 7 - 6 = 1 이므로

- index -7 에서 1개를 삭제하라는 것이 된다.

 

3) .join() .include()

- .join() 해주면 ["j", "u", "s", "t", "h", "s"] "jusths" 되며

- .include() 해주면 .join() string 속에 secretCode "jusths" 포함되어 있는지를 확인해준다.

타이핑시 아래와 같이 pressed[] 출력된다.

 

1) a, s, d, g, j, u, s, t, h, s 타이핑 하였다.

2) a, s, d, g, j, u, s 까지 7개가 pressed 들어갈때에 secretCode 길이보다 길어진다.

- 이때 splice() 보면

- splice(-7, 1) 되는데, -1 끝의 s 인덱스이므로

- -7 뒤쪽에서 7번째인 a 되며

- deleteCount 1 이므로 a 지우게 된다.

- 따라서 남은 pressed[] s, d, g, j, u, s 이다.

 

 

 

splice 심화과정

 

- 출처 링크: https://goo.gl/NdsDhW

 

['angel', 'clown', 'mandarin', 'surgeon'] 있다.

 

 

 

1) splice(2, 0, 'drum');

- 2 인덱스에,  삭제하진 말고, 'drum' 추가하라는 것이다.

- 따라서 결과는 왼쪽과 같다.

 

 


2) splice(3, 1);

- 3 인덱스 (= 'mandarin') 에서부터 1개만 지우라는 것이다.

 

 

  

 

 

3) splice(2, 1, 'trumpet');

- 2 인덱스 (='drum') 에서부터 1개를 지우고

- 'trumpet' 삽입하라는 것이다.

결국은 replace 되는 셈이다.

 

 

 

4) splice(0, 2, 'parrot', 'anemone', 'blue');

- 0 인덱스, 처음부터 2개를 지우고

- 'parrot', 'anemone', 'blue' 삽입한다.

 

 


 

5) splice(3, Number.MAX_VALUE);

- 3 인덱스부터, 어마어마한 숫자만큼 삭제해라

- Number.MAX_VALUE == 2^1024 이다.

- 따라서 있는 만큼까지는 지워버린다.

 

 


반응형

'javascript30' 카테고리의 다른 글

14 - JavaScript References VS Copying  (0) 2019.03.19
13 - Slide in on Scroll  (0) 2019.03.18
11 - Custom Video Player  (0) 2019.03.14
10 - Hold Shift and Check Checkboxes  (0) 2019.03.12
09 - Dev Tools Domination  (0) 2019.03.11
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함