문제
sliceCityFromAddress 함수를 구현해 주세요.
- sliceCityFromAddress 함수는 address를 인자로 받습니다.
- address는 주소를 나타내는 string 입니다.
- 주어진 주소에서 도시를 찾아 삭제하고 새로운 주소를 반환해 주세요.
- 이 때, 도시는 무조건 "시"라는 단어로 끝납니다. 예) "서울특별시", "성남시"
- "시"는 주소에 단 한번만 포함되어 있습니다.
- 예를 들어 다음과 같은 주소가 주어졌다면,
"경기도 성남시 분당구 중앙공원로 53" / "서울특별시 강남구 테헤란로 427 위워크타워"
다음과 같은 값이 반환되어야 합니다:
"경기도 분당구 중앙공원로 53" / "강남구 테헤란로 427 위워크타워"
function sliceCityFromAddress(address) {
let arr = address.split(" "); // 공백을 기준으로 쪼갠 배열을 반환한다.
for (let i in arr) { // 배열 인덱스 수만큼 조건문을 돌린다.
if (arr[i].indexOf("시") !== -1) {// 해당 인덱스값에 "시"가 포함되어 있다면
arr.splice(i,1); // 해당 인덱스를 가지는 배열의 값 1개를 제거한다.
}
} return arr.join(' '); // 배열로 쪼갰던 값들을 공백을 넣어 하나로 다시 연결해준다.
}
console.log(sliceCityFromAddress("경기도 성남시 분당구 중앙공원로 53"))
indexOf()
메서드는 특정 문자열이 포함되어있는지 확인하고, 만약 있다면 몇 번 째 순서에 해당 문자열이 있는지 알려 줍니다.function sliceCityFromAddress(address) {
return address
.split(" ")
.filter(arr=>arr.indexOf("시")==-1)
.join(" ")
}
console.log(sliceCityFromAddress("경기도 성남시 분당구 중앙공원로 53"))
filter()
메서드는 true값만 반환하기 때문에 filter(arr=>arr.indexOf("시")==-1)
를 통해 ("시"가 없는 문자열==-1)을 반환
만약 문제가 "시"가 있는 문자열을 반환하는 문제였다면
filter(arr=>arr.indexOf("시")!==-1)
를 통해 -1이 아닌 값을 filter()함수를 통해 true로 받아야한다