[JS] String 기본 함수 (slice, splice, split)

zhflsdl보보·2022년 10월 22일
0

JavaScript

목록 보기
1/10
post-thumbnail

sliceCityFromAddress 함수를 구현해 주세요.
sliceCityFromAddress 함수는 address 를 인자로 받습니다.

  • address 는 주소를 나타내는 string 입니다.
  • 주어진 주소에서 도시를 찾아 삭제하고 새로운 주소를 리턴해 주세요.
  • 도시는 무조건 ‘시’로 끝납니다. 예) “서울특별시”, “성남시”
  • ‘시’는 주소에 한번만 포함되어 있습니다.
  • 예를 들어, 다음과 같은 주소가 주어졌다면
    "경기도 성남시 분당구 중앙공원로 53"
    다음과 같은 값이 리턴되어야 합니다:
    "경기도 분당구 중앙공원로 53"

주소에서 "시" 로 끝나는 단어를 빼는 함수를 만들어야 한다.

함수를 만들기 전에 String 관련된 기본 함수들을 살펴보자.

1) toUpperCase, toLowerCase

대소문자 바꿀 때 사용한다.

let name = "Kim Boyoon";
let upperName = name.toUpperCase();
let lowerName = name.toLowerCase();

console.log(upperName); // KIM BOYOON
console.log(lowerName); // kim boyoon

2) length

문자길이 구할 때 사용한다.

예를 들어, 회원가입할 때 10자 이상으로 작성했는지 체크할 때 사용된다.

let name = "개발자"

console.log(name.length); // 3

let phoneNumber = "01012349876";

console.log(phoneNumber); // 01012349876
console.log(phoneNumber.length); // 11

number 형은 length 라는 속성이 없으므로
number 형의 길이를 재려면 string 형으로 저장해야 한다.

3) indexOf

문자열 찾기

해당 문자열에 특정 문자열이 들어있는지 확인하고,
있다면 몇번째 순서에 있는지 알려준다.

문자열이 없다면 -1 을 반환한다.

예를 들어, 댓글을 달 때 댓글에 해당 단어가 포함된다면 댓글을 달지 못하게 하는 기능이 있다.

4) slice()

텍스트를 잘라주는 함수

slice(시작위치, 끝위치)

끝 위치의 문구는 포함하지 않는다.

let info = "JavaScript 는 프로래밍 언어이다.";
let word = info.indexOf("프로래밍"); // 12

if (word !== -1) {
 info = info.slice(0,word) + "프로그래밍" + info.slice(word+4, info.length); 
}

console.log(info); // JavaScript 는 프로그래밍 언어이다.

slice(0,12) 니까 12번째 글자는 포함이 안된, 즉 12번째 글자 앞에서 잘린다.

5) split()

텍스트를 나누는 함수
텍스트를 나눠서 배열로 반환한다.
split (나누는 기준, 0번째 부터 반환하는 끝 번호)

let text = "How are you doing today?";
const myArray1= text.split(" ");
let word = myArray1[1];
const myArray2 = text.split(" ", 3);

console.log(text); // "How are you doing today?"
console.log(myArray1); // ['How','are','you','doing','today?']
console.log(word); // 'are'
console.log(myArray2); // ['How','are','you']

6) splice()

배열에서 요소들을 제거하거나 추가하는 함수
splice(위치, 제거할 개수, 추가할 정보)

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'];

fruits.splice(2, 0, 'Lemon', 'Kiwi');
console.log(fruits); // ['Banana','Orange', 'Apple', 'Lemon', 'Kiwi', 'Mango']

7) includes()

문자열에 단어가 포함되어있는지 확인하는 함수
return 값이 true / false 가 나옴

8) join()

배열을 string으로 붙여주는 함수

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let text = fruits.join(" and ");

console.log(text); // Banana and Orange and Apple and Mango



다시 처음의 문제를 풀어보자.

다음의 과정으로 생각해보았다.

  1. 띄어쓰기 기준으로 나눈 배열을 만들자
  2. 배열의 모든 index에서 "시" 가 들어있는 index를 찾자
  3. 배열에서 그 index를 제거하자
  4. 배열을 다시 string으로 붙여서 return 하자
function sliceCityFromAddress(address) {
  let city = address.split(" ");  // 1번
  for (let i = 0; i < city.length; i++) {
    if (city[i].includes("시")) { // 2번
      city.splice(i,1); //3번
    }
  }
  return city.join(" "); //4번
}

sliceCityFromAddress("경기도 성남시 중앙공원로 53")
sliceCityFromAddress('서울특별시 강남구 역삼동')

결론 : 어렵따,,,

profile
매일매일 성장하는 개발자

0개의 댓글