이번 글에서는 문자열과 숫자 n을 입력받아, 해당 문자열에서 처음 n개의 문자를 제거한 새로운 문자열을 반환하는 JavaScript 함수를 작성해 보겠습니다.
문제 이해하기
예를 들어 원본 문자열이 다음과 같고,
const str = "this is a string"
n = 5라고 가정하면, 앞의 5개 문자("this ")가 제거되어 출력 결과는 다음과 같아야 합니다.
const output = "is a string"
구현 방법
이 함수는 두 가지 경우를 고려해야 합니다. 첫째, 제거할 문자 수(n)가 문자열 전체 길이보다 크다면 모든 문자가 제거되므로 빈 문자열을 반환하는 것이 자연스럽습니다. 둘째, 그렇지 않은 경우에는 n번째 위치부터 끝까지의 문자만 잘라내어 반환하면 됩니다.
문자열 자르기에는 substr(), substring(), 또는 slice() 메서드를 사용할 수 있습니다. 아래 예제에서는 substr()을 활용했습니다.
코드 작성
다음은 실제 구현 코드입니다.
const mobileNumber = '+915389534759385';
const secondNumber = '+198345985734';
const removeN = (str, num) => {
const { length } = str;
if(num > length){
return '';
};
const newStr = str.substr(num, length - num);
return newStr;
};
console.log(removeN(mobileNumber, 3));
console.log(removeN(secondNumber, 2));코드 설명
removeN 함수는 화살표 함수로 정의되었으며, 먼저 구조 분해 할당을 통해 문자열의 길이를 추출합니다. 제거할 개수가 문자열 길이보다 크면 빈 문자열을 반환하고, 그렇지 않으면 substr(num, length - num)으로 인덱스 num부터 나머지 전체 문자열을 잘라냅니다.
실행 결과
콘솔에 출력된 결과는 다음과 같습니다.
5389534759385 98345985734
첫 번째 호출에서는 국가 코드 "+91"(3자리)가 제거되었고, 두 번째 호출에서는 "+1"(2자리)이 제거된 것을 확인할 수 있습니다. 이처럼 전화번호에서 국가 코드를 제거하는 등의 실무 상황에서 유용하게 활용할 수 있습니다.