indexOf() 함수로 특정 문자열을 찾을 수 있다.
결과로는 찾고자 하는 문자가 몇번째에 있는지 알려준다.
만약 해당 문자열이 없다면 -1을 반환한다.
"문자열".indexOf("찾을 문자")
let info = "JavaScript는 프로래밍 언어이다.";
let firstChar = info.indexOf("프로래밍");
console.log(info, firstChar);
if (firstChar !== -1) {
info = info.slice(0, firstChar) + "프로그래밍" + info.slice(firstChar+4, info.length);
}
console.log(info);
배열 메소드 중 하나인 slice는 배열의 일부분(slice) or 부분 배열(subarray)을 반환한다.
slice()는 두 개의 인자를 받는데, 각 인자는 반환될 부분의 처음과 끝을 명시한다.
만약 인자를 하나만 명시하면, 그 위치부터 배열 끝까지의 모든 원소를 포함하는 부분 배열을 반환한다.
인자가 음수라면 배열의 마지막 원소에서 상대적인 위치로 배열 원소를 지정한다.
(예를 들어, 전달인자 -1은 배열의 마지막 원소를 뜻하고, -3은 마지막 원소부터 앞쪽으로 세번째 원소를 가리킨다.)
Assignment
그 후 sliceCityFromAddress 함수를 구현해 주세요.
- sliceCityFromAddress 함수는 address 인자를 받습니다.
- address 인자에는 주소를 나타내는 string이 주어집니다.
- 주어진 주소가 어느 도시인지를 찾아내서, 해당 주소에서 도시 부분만 삭제한 새로운 주소를 리턴해 주세요.
주소는 무조건 "시" 로 끝납니다. 예를 들어, "서울시".
"도" 와 "시" 는 주소에 한번 밖에 포함되어 있지 않습니다.예를 들어, 다음과 같은 주소가 주어졌다면;
"경기도 성남시 분당구 중앙공원로 53"
다음과 같은 값이 리턴되어야 합니다:
"경기도 분당구 중앙공원로 53"
처음엔 문제 이해를 못했지만 결국 생각해낸 답으로는
let space = address.indexOf("도");
let city = address.indexOf("시");
if(space === -1) {
return address.slice(city+2);
} else {
return address.slice(0, space+2) + address.slice(city+2)
}
}