TIL 8. String indexOf(), String slice()

주민콩·2020년 10월 24일
0

indexOf()

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는 배열의 일부분(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)
}
}

profile
코딩하면서 기록하는 메모장 ᰔ

0개의 댓글