내가 생각한 풀이 방법
입력된 전화번호의 뒷자리 4자리만 제외하고 전부 "*" 로 변환하기!
function solution(phone_number) {
let answer = '';
let arr = [...phone_number];
let num = phone_number.length;
for (i=0; i<num; i++) {
if (i < num-4) {
arr[i] = "*";
}
}
answer = arr.join('')
return answer;
}
replace()를 통해 문자열을 바꿔보려했는데 이상하게 안됨
그래서 귀찮지만... 배열로 만들어서 글자를 spread하고 인덱싱으로 찾은 후
배열의 앞자리들을 "*"로 바꾼 후 다시 join(' ')으로 합침!
나의 문제점!
1) 문자열을 바꿀때 배열처럼 생각해서 접근했었다!!
:replace로 문자열을 바꾸는데, 그 답을 계속 빈 문자열에
넣으려고 시도했었다.
function solution(phone_number) {
let num = phone_number;
let result = '';
for (i=0; i<(num.length-4); i++) {
result = num[i].replace("*");
}
return result;
}
요즘 계속 배열 문제를 풀었더니, 빈 배열에 값을 넣는 버릇이 생김..
근데 문자열은 배열 처럼 그냥 넣으면 문자가 점점 쌓이는게 아니라,
그냥 문자가 바뀌기만 하는 거였다!!!
function solution(phone_number) {
let s = phone_number;
let result = "*".repeat(s.length-4) + s.slice(-4);
return result;
}
그래서 바꾼 코드!!!!
repeat함수랑 slice함수를 사용했다!
왜 다 풀고 제출한 후에 생각이 나는걸까~~~
그래도 내가 원하는 방식으로 풀려서 다행이다~~~꺆~