toUpperCase
toLowerCase
length
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);
위는 "프로래밍" 이라는 오타를 "프로그래밍" 이라고 바꾸어 주는 코드입니다.
코드를 한 줄 한 줄 설명하자면
info
문구에서 "프로래밍"이 시작되는 index
는 12입니다.
if (firstChar !== -1)
firstChar
이 -1이 아니면firstChar
는 12 입니다. 따라서 조건문은 true
."프로래밍"이라는 오타가 포함되어있으면 if
문을 실행합니다.
info.slice(0, firstChar)
slice
메소드는 이름 그대로, 텍스트를 잘라주는 함수입니다.
그 구조는 다음과 같습니다.
slice(잘릴 시작위치, 잘릴 끝위치)
잘릴 시작위치는 0입니다. 잘릴 끝위치는 firstChar
로 12 입니다.
그래서 slice
메소드는 info
문구의 0부터 11번째 까지 잘라서 반환합니다.
잘릴 끝위치가 조금 헷갈리는데, 잘릴 끝위치의 문구는 포함하지 않습니다.
따라서, 12번째의 문자는 포함하지 않습니다. 바로 그 직전에서 끊어줍니다.
지금 slice
메소드가 조금 어렵겠지만 일단 slice
라는 메소드 있다는 것만 기억하고 넘어가도 좋습니다.
console.log(info.slice(0, firstChar));
info.slice(firstChar+4, info.length);
잘릴 시작위치는 16 입니다. (firstChar
+ 4 = 12 + 4 = 16)
잘릴 끝 위치는 22 입니다. (info.length
= 22)
info
의 16번째 문자인 "언" 부터 22번째 문자 이전까지 자르게 됩니다.
22번째는 문자가 존재하지 않기 때문에, 그 직전에 끊으니 "."까지 포함하는 문자열로 잘리게 됩니다.
console.log(firstChar+4, info.length);
String의 slice()
는 자주 사용 되는 문자열 메소드 중 하나 입니다.
먼저 slice
에 대한 설명을 가볍게 읽어봅시다 👉 slice설명
sliceCityFromAddress
함수는 address
를 인자로 받습니다.
address
는 주소를 나타내는 string 입니다.
주어진 주소가 어느 도시 인지를 찾아 해당 주소에서 도시 부분만 삭제한 새로운 주소를 리턴해 주세요.
도시는 무조건 "시" 로 끝납니다. 예를 들어, "서울시".
"도" 와 "시" 는 주소에 한번 밖에 포함되어 있지 않습니다.
예를 들어, 다음과 같은 주소가 주어졌다면;
"경기도 성남시 분당구 중앙공원로 53"
다음과 같은 값이 리턴되어야 합니다:
"경기도 분당구 중앙공원로 53"
function sliceCityFromAddress(address){ const newArray = address.split(' '); const result = []; console.log(newArray); for(let i = 0; i < newArray.length; i++){ if(!newArray[i].includes('시')){ result.push(newArray[i]); } } return result.join(' '); } let address = '경기도 성남시 분당구 중앙공원로 53'; console.log(sliceCityFromAddress(address));