[JavaScript] 문자열(string)을 변경 indexOf() , slice()
2022. 9. 24. 18:51ㆍCodingTest/JavaScript Q
문제)주어진 주소에서 도시를 찾아 삭제하고 새로운 주소를 리턴해 주세요.
- sliceCityFromAddress 함수는 address 를 인자로 받습니다.
- address 는 주소를 나타내는 string 입니다.
- 도시는 무조건 ‘시’로 끝납니다. 예) “서울특별시”, “성남시”
- ‘시’는 주소에 한번만 포함되어 있습니다.
- 예를 들어, 다음과 같은 주소가 주어졌다면
"경기도 성남시 분당구 중앙공원로 53" >>> 다음과 같이 리턴 >>> "경기도 분당구 중앙공원로 53"
문자열 변경시 사용되는 method
- indexOf() : 배열의 위치를 문자열로 찾음
let cats = ["blue',"kitty","rusy","mayo"]
cats.indexOf("rusy") //2
cats.indexOf("kitty") //1
cats.indexOf("mayo") //3
- slice() : 원래 배열을 유지하면서 새로운 일부 혹인 부분배열을 반환
let number = [1, 2, 3, 4, 5]
number.slice(0, 3) // 1,2,3
number.slice(3) // 4,5
number.slice(1, -1) // 2,3,4
number.slice(-3, -2) // 3
첫번째숫자 = 포함 / 두번째숫자 = 포함X
strA 변수에 indexOf()함수로 "시"가 들어가는 글자 위치를 찾고
strB 변수에 indexOf()함수로 " " 띄어쓰기가 처음 시작되는 부분을 찾는다.
function sliceCityFromAddress(address) {
let strA = address.indexOf("시");
let strB = address.indexOf(" ");
if (strA === 4) {
return address.slice(strB+1);
} else if (strA !== 4) {
return address.slice(0, strB)+address.slice(strA+1)
}
}
console.log(sliceCityFromAddress("경기도 화성시 분당구 중앙공원로 53"));
console.log(sliceCityFromAddress("서울특별시 잠실 분당구 중앙공원로 53"));
strA === 4의 뜻은 strA는 문자열 "시" 가 있는 위치를 indexOf number로 알려준는데 그 number가 4와 일치하면 이라는 뜻이다
일치할 경우 "서울특별시"로 시작하는 문자열이라 띄어쓰기 처음 시작되는 위치에서 +1 된 위치부터 반환한다는 의미이다
if (strA === 4) {
return address.slice(strB+1); }
strA !== 4 뜻은 strA는 문자열 "시" 가 있는 위치를 불일치 할 경우의 뜻이다.
불일치할 경우 "서울특별시"가 아닌경우라는 의미로 "경기도" 또는 "충청남도" 또는"제주도" 등의 경우 이다
이럴경우 문자열이 시작하는 [0] 위치부터 문자열의 처음 띄어쓰기 시작하는 위치까지를 선택하고
문자열 "시"가 시작되는 위치부터 +1 더하여 시작되는 위치에 문자열을 선택한다는 의미이다.
else if (strA !== 4) {
return address.slice(0, strB)+address.slice(strA+1) }
'CodingTest > JavaScript Q' 카테고리의 다른 글
[JavaScript] 최소값(min), 최대값(max) number (1) | 2022.09.24 |
---|---|
[JavaScript] String <-> Number 변환 `${}` (0) | 2022.09.24 |
[JavaScript] Array 조작하기 unshift() , push() (0) | 2022.09.24 |
[JavaScript] 빈 객체(object)에 key : value 추가 (0) | 2022.09.23 |
[JavaScript] birthdate 계산방법 (0) | 2022.09.23 |