sliceCityFromAddress 함수 구현
sliceCityFromAddress 함수는 address 를 인자로 받습니다.
address 는 주소를 나타내는 string 입니다.
주어진 주소가 어느 도시 인지를 찾아 해당 주소에서 도시 부분만 삭제한 새로운 주소를 리턴해 주세요.
도시는 무조건 "시" 로 끝납니다. 예를 들어, "서울시".
"도" 와 "시" 는 주소에 한번 밖에 포함되어 있지 않습니다.
예를 들어, 다음과 같은 주소가 주어졌다면;
"경기도 성남시 분당구 중앙공원로 53"
다음과 같은 값이 리턴되어야 합니다
"경기도 분당구 중앙공원로 53"
function sliceCityFromAddress(address) {
let state = address.indexOf('도');
let city = address.indexOf('시');
// console.log(state, city);
if(state !== -1) {
return address.slice(0,state+2) + address.slice(state+6, state.length);
} else if(city !== -1){
return address.slice(6,city+5) + address.slice(9, city.length);
}
return address;
}
}
let address = "경기도 성남시 분당구 중앙공원로 53";
// let address = "서울특별시 강남구 테헤란로 427 위워크타워";
console.log(sliceCityFromAddress(address));
let city = address.indexOf('시');
let state = address.indexOf('도');
if(state !== -1)
if(state !== -1) {
return address.slice(0,state + 2) + address.slice(state + 6, state.length);
}
function sliceCityFromAddress(address) {
let city = address.indexOf('시');
let state = address.indexOf('도');
if(state !== -1) {
return address.slice(0,state + 2) + address.slice(state + 6, state.length);
}
return address;
}
sliceCityFromAddress('전라북도 군산시 나운동 은파유원지 근처 apt');
// '전라북도 나운동 은파유원지 근처 apt' 라고 잘 나온다.
여기까진 정답이다. 그런데 내가 간과한 사실이 하나 있었다.
바로 서울 특별시 처럼 앞에 '도'가 없는 지역도 있었던 것이다.
레플릿 테스트 결과에 계속 적색 불이 들어와서 킹받던 가운데 깨달아버렸다.
이 맛에 개발하는 거 아니겠나.
다시 조건을 추가해줘봤다.
// '서울특별시 영등포구 타임스퀘어 근처 오피스텔'로 주소를 준다면
'시'에 해당하는 index는 4. 이용해주자.
(TMI. 대부분 앞이 '시'로 시작하면 서울특별시, 인천광역시,
광주광역시 이렇게 5글자다.)
else if(city !== -1) {
return address.slice(6, city + 6) + address.slice(city + 6, city.length);
// 영등포구 타임스퀘어 근처 오피스텔 결과가 잘 나온다.
6. 다시 합체
function sliceCityFromAddress(address) {
let city = address.indexOf('시');
let state = address.indexOf('도');
if(state !== -1) {
return address.slice(0,state + 2) + address.slice(state + 6, state.length);
} else if(city !== -1) {
return address.slice(6, city + 6) + address.slice(city + 6, city.length);
return address;
}
//sliceCityFromAddress('전라북도 군산시 나운동 은파유원지 근처 apt');
//sliceCityFromAddress('서울특별시 영등포구 타임스퀘어 근처 오피스텔');
추가적인 조건을 알아차리지 못했고, 문장 index를 활용해 값을 변경하는 데에
어려움을 겪어서 많은 시간을 소모했다.
역시, 항상 그렇지만 끝없는 digging만이 살 길이다.