TIL(9) - String

김서하·2021년 6월 10일
0

Wecode TIL Replit

목록 보기
9/21
post-thumbnail

String

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);

위는 "프로래밍" 이라는 오타를 "프로그래밍" 이라고 바꾸어 주는 코드입니다.

코드를 한 줄 한 줄 설명하자면

  1. info 문구에서 "프로래밍"이 시작되는 index 는 12입니다.

  2. if (firstChar !== -1)

    • firstChar 이 -1이 아니면
    • 즉, "프로래밍"이라는 문구가 없지 않다면
    • 즉, "프로래밍"이라는 문구가 있다면
    • "프로래밍" 문구는 12번째에서 시작하므로 firstChar 는 12 입니다. 따라서 조건문은 true.

    "프로래밍"이라는 오타가 포함되어있으면 if 문을 실행합니다.

  3. info.slice(0, firstChar)

    • slice 메소드는 이름 그대로, 텍스트를 잘라주는 함수입니다.

    • 그 구조는 다음과 같습니다.

      slice(잘릴 시작위치, 잘릴 끝위치)
    • 잘릴 시작위치는 0입니다. 잘릴 끝위치는 firstChar 로 12 입니다.

    • 그래서 slice 메소드는 info 문구의 0부터 11번째 까지 잘라서 반환합니다.

    • 잘릴 끝위치가 조금 헷갈리는데, 잘릴 끝위치의 문구는 포함하지 않습니다.

    • 따라서, 12번째의 문자는 포함하지 않습니다. 바로 그 직전에서 끊어줍니다.

    • 지금 slice 메소드가 조금 어렵겠지만 일단 slice 라는 메소드 있다는 것만 기억하고 넘어가도 좋습니다.

      console.log(info.slice(0, firstChar));
  4. 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);

Assignment

String의 slice() 는 자주 사용 되는 문자열 메소드 중 하나 입니다.
먼저 slice 에 대한 설명을 가볍게 읽어봅시다 👉 slice설명

그 후 sliceCityFromAddress 함수를 구현해 주세요.

  • 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));

profile
개발자 지망생 서하입니당

0개의 댓글