문자열의 일부 가리기

이주희·2022년 3월 21일
0

Algorithm

목록 보기
1/79

slice([추출 시작점, [종료할 인덱스]])

arr.slice([begin[, end]])

추출 시작점

  • 음수 인덱스는 배열의 끝에서부터의 길이를 나타낸다. slice(-2)는 배열에서 마지막 두 개를 추출한다.

  • undefined인 경우에는, 0번부터 추출한다.

  • 배열의 길이보다 큰 경우에는, 빈 배열을 반환한다.

종료할 인덱스

  • 종료할 인덱스는 제외하고 추출한다.

  • 음수 인덱스는 추출 시작점과 마찬가지로 배열의 끝에서부터의 길이를 나타낸다. slice(2,-1)는 세번째부터 끝에서 두번째 요소까지 추출한다.

  • 생략하거나 배열의 길이보다 큰 경우에는, 끝까지 추출한다.

반환 값

  • 추출한 요소를 포함한 새로운 배열을 반환한다.

  • 원본을 대체하지 않고, 원본 배열에서 요소의 얕은 복사본을 반환한다.

padStart(목표 문자열 길이 [,채울 문자열])

str.padStart(목표 문자열 길이 [, 채울 문자열])

목표 문자열 길이

  • 현재 문자열의 길이보다 작으면 채워넣지 않고 그대로 반환한다.

채울 문자열

  • 문자열이 길어서 목표 문자열 길이를 초과하면 좌측 일부를 잘라서 넣는다.

  • 기본값은 " "

[핸드폰 번호 가리기]

문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건
s는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" "***4444"
"027778888" "*8888"

  1. slice와 padStart 사용
function solution(phone_number) {
    var answer = '';

    slicedNum = phone_number.slice(phone_number.length-4)
  answer = slicedNum.padStart(phone_number.length, '*')
  return answer;
}

1-1. slice와 padStart 사용

function sol3(phone_number) {
  let answer = '';
  
  // 1. 뒷 4자리를 제외한 앞에 번호들은 *로 채워준다.
  answer = answer.padStart(phone_number.length-4, '*')
  
  //2. 뒷 4자리를 잘라서 문자열 뒤에 추가한다.
  return answer + phone_number.slice(phone_number.length-4)
  
  
}
  1. If문 활용
function sol2(phone_number) {
  let answer = '';
  
  for(let i=0; i < phone_number.length; i++){
      if(i < phone_number.length -4){
          answer += "*";
      }else{
          answer += phone_number[i];
      }
  }
  return answer;
}
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글