-
[wecode 2주차] JavaScript Exam(4)Trainings/Exam 2020. 5. 2. 22:23
[ 문제 ]
"get_find" 함수를 작성하세요.
문자와 문자열이 주어졌을 때,"get_find" 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫 번째 위치를 반환합니다.
Notes:
-
문자열의 첫번째 문자는 인덱스 값 0을 가집니다.
-
만약 문자열에 해당 문자가 여러번 나타나면, 첫 번째로 나타나는 위치를 반환해야 합니다.
-
만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
-
indexOf 함수를 사용하지 마세요.
[ 결과 ]
const output = get_find('a', 'I am a hacker')
console.log(output) // --> 2
[내가 짠 코드]
function get_find(ch,str){ if(str.search(ch)){ return str.search(ch); }else{ return -1; } } const output = get_find('a', 'I am a hacker') console.log(output) // --> 2
우선 "get_find" 이라는 함수를 정의한다.
함수 내부에서 매개변수 이름은 문자를 의미하는 ch와 문자열을 의미하는 str로 지정했다.
함수 호출에서 첫번째 인자는 첫 번째로 나타나는 문자, 두 번째 인자는 첫 번째 인자가 들어있는 문자열을 의미한다.
일단 indexOf를 이용하면 안되기 때문에, 처음에는 a라는 문자가 문자열에서 일치하는 순간 배열에 담아서 첫 번째 배열 값으로 return 하려고 했으나, 문제에서 요구하는 방식에서 어긋나는 것 같아서 다른 방식을 생각해보았다.
그러다 search()라는 내장 함수를 알게되었다.
포함하는 문자가 있으면 인덱스를 리턴하고, 만약 문자가 포함되어 있지 않으면 -1을 반환한다.
indexOf()와 상당히 비슷했다.
결국 한번 적용시켜보았는데, 첫 번째로 발견된 문자열의 위치가 반환되는 것을 확인할 수 있었다.
'Trainings > Exam' 카테고리의 다른 글
[wecode 2주차] JavaScript Exam(5) (0) 2020.05.02 [wecode 2주차] JavaScript Exam(3) (0) 2020.05.02 [wecode 2주차] JavaScript Exam(2) (0) 2020.05.02 [wecode 2주차] JavaScript Exam(1) (0) 2020.05.02 -