-
[wecode 2주차] JavaScript Exam(2)Trainings/Exam 2020. 5. 2. 21:36
[ 문제 ]
"get_prefix" 함수를 작성하세요.
문자열이 주어졌을 때, "-"를 기준으로 앞에 있는 문자열을 반환하세요.
[ 결과 ]
console.log(get_prefix('BTC-KRW')) // --> BTC
[내가 짠 코드]
function get_prefix(str){ const n = str.indexOf('-'); console.log(n) return str.slice(0, n); } get_prefix("BTC-KRW"); // 함수 호출
먼저 "get_prefix" 함수를 정의하고, 인자 값이 문자열이기 때문에 매개 변수 이름은 문자열을 의미하는 str로 설정했다.
우리는 "-"를 기준으로 앞에 있는 문자열을 반환해야한다.
"-"를 기준으로 정하기 위해서 indexOf()라는 내장 함수를 이용했다.
indexOf() 란?
→ indexOf() 메서드는 호출한 String객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환한다. 일치하는 값이 없으면 -1을 반환합니다.
즉, 문자열안에 "-"의 위치를 반환해주는 기능을 가진다.
console.log(n)으로 확인해보면 값은 3이다.
왜냐하면, 배열처럼 문자열의 첫 문자 또한 0부터 시작하기 때문이다.
이제 "-"의 위치를 알아냈으니까 맨 앞부터 n까지의 문자열을 추출하기만 하면 된다.
그 문자열을 추출하기 위해 나는 slice()라는 내장 함수를 사용했다.
slice() 란?
→ str.slice(beginIndex[, endIndex]) 이런 식으로 사용하며,
beginIndex
추출 시작점인 0부터 시작하는 인덱스이다. 만약 음수라면, beginIndex는 strLength(문자열 길이) + beginIndex로 취급된다.
예를 들어 beginIndex가 -3이면 시작점은 strLength - 3이고, 만약 beginIndex가 strLength 보다 크거나 같은 경우, slice()는 빈 문자열을 반환한다.
endIndex
0부터 시작하는 추출 종료점 인덱스로 그 직전까지 추출된다. 인덱스 위치의 문자는 추출에 포함되지 않는다. 만약 endIndex가 생략된다면, silce()는 문자열 마지막까지 추출된다. 만약 음수라면, endIndex는 strLength(문자열 길이) + endIndex로 취급됩니다(예를 들어 endIndex가 -3이면 시작점은 strLength - 3).
따라서, slice(0, n)의 의미는 첫 번째 문자부터 n번째 전까지의 문자를 의미한다.
즉, 첫번째 문자에서 "-"의 위치 전까지의 문자열이 출력되는 것을 볼 수 있다.
'Trainings > Exam' 카테고리의 다른 글
[wecode 2주차] JavaScript Exam(5) (0) 2020.05.02 [wecode 2주차] JavaScript Exam(4) (0) 2020.05.02 [wecode 2주차] JavaScript Exam(3) (0) 2020.05.02 [wecode 2주차] JavaScript Exam(1) (0) 2020.05.02