[replit_JS] 19. String

하서율·2022년 7월 20일
0

replit_JS

목록 보기
1/3
  • sliceCityFromAddress 함수는 address 를 인자로 받습니다.
  • address 는 주소를 나타내는 string 입니다.
  • 주어진 주소에서 도시를 찾아 삭제하고 새로운 주소를 리턴해 주세요.
  • 도시는 무조건 ‘시’로 끝납니다. 예) “서울특별시”, “성남시”
  • ‘시’는 주소에 한번만 포함되어 있습니다.

풀이1.

  1. string을 배열로 변환 split()
  2. 반복문+조건문으로 '시'가 포함된 요소 찾기 includes()
  3. 해당요소 배열에서 제거하기 splice()
  4. 배열을 다시 string으로 변환 후, return join()

코드:

function sliceCityFromAddress(address) {
let arraddress = address.split(" ")
  for (let i =0; i<arraddress.length; i++){
    if(arraddress[i].includes('시')){
      arraddress.splice(i,1)
    }
  } return arraddress.join(" ")
}
console.log(sliceCityFromAddress("경기도 성남시 분당구 중앙공원로 53"))



풀이2.

1. '시'의 index값 구하기 indexOf()
2. 반복문 +조건문으로 '~시'부분 잘라내기 slice()

▪️ 조건1:
'~시'가 문장 중간에 있을때

  let city= address.indexOf('시')
 for (let i =city; i>=0; i--){     // '시'의 인덱스 이전글자들을 확인
    if(address[i]=== " "){         // 확인된 글자가 공백일때
     result= address.slice(0,i)+address.slice(city+1,address.length)
      return result;              // 공백부터 '시'까지 제거 후, 나머지 문자열을 이어준다. 
    }

▪️ 조건2:
'~시'가 문장맨 앞에 있을때.

  else if(address[city-i] === address[city]){  // i가 0일때만 가능 === '~시'가 가장 앞에 있음.
    result= address.slice(city+2,address.length)
    return result;
  }


코드:

function sliceCityFromAddress(address) {
let city= address.indexOf('시')
let result
for (let i =city; i>=0; i--){
  if(address[i]=== " "){
   result= address.slice(0,i)+address.slice(city+1,address.length)
    return result;
  }else if(address[city-i] === address[city]){
    result= address.slice(city+2,address.length)
    return result;
  }
} 
}
profile
매일 매일 기록하기

0개의 댓글