arr.slice([begin[, end]])
음수 인덱스는 배열의 끝에서부터의 길이를 나타낸다. slice(-2)
는 배열에서 마지막 두 개를 추출한다.
undefined인 경우에는, 0번부터 추출한다.
배열의 길이보다 큰 경우에는, 빈 배열을 반환한다.
종료할 인덱스는 제외하고 추출한다.
음수 인덱스는 추출 시작점과 마찬가지로 배열의 끝에서부터의 길이를 나타낸다. slice(2,-1)
는 세번째부터 끝에서 두번째 요소까지 추출한다.
생략하거나 배열의 길이보다 큰 경우에는, 끝까지 추출한다.
추출한 요소를 포함한 새로운 배열을 반환한다.
원본을 대체하지 않고, 원본 배열에서 요소의 얕은 복사본을 반환한다.
str.padStart(목표 문자열 길이 [, 채울 문자열])
문자열이 길어서 목표 문자열 길이를 초과하면 좌측 일부를 잘라서 넣는다.
기본값은 " "
문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
s는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" "***4444"
"027778888" "*8888"
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)
}
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;
}