Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 문자열에서 첫 k개 문자 제거하기 — 실전 예제로 배우는 방법

이번 글에서는 문자열과 숫자 k를 입력받아, 해당 문자열에서 처음 k개의 문자를 제거한 새로운 문자열을 반환하는 JavaScript 함수를 작성해 보겠습니다.

예를 들어, 원본 문자열이 다음과 같다고 가정해 봅시다.

const str = "this is a string"

여기서 n = 4라면,

n = 4

출력 결과는 다음과 같아야 합니다.

const output = " is a string"

예제 코드

위 요구 사항을 구현한 코드는 다음과 같습니다.

const str = 'this is a string';
const removeN = (str, num) => {
    const { length } = str;
    if(num > length){
        return str;
    };
    const newStr = str.substr(num, length - num);
    return newStr;
};
console.log(removeN(str, 3));

실행 결과

콘솔에 출력되는 결과는 아래와 같습니다.

s is a string

코드 동작 원리

함수가 어떤 순서로 처리되는지 단계별로 살펴보겠습니다.

  • 길이 확인: 구조 분해 할당(Destructuring)을 활용해 문자열의 전체 길이를 length 변수에 저장합니다.
  • 예외 처리: num이 문자열 길이보다 크면 잘라낼 문자가 존재하지 않으므로, 원본 문자열을 그대로 반환합니다.
  • 문자열 자르기: substr() 메서드를 사용해 인덱스 num부터 문자열 끝까지의 부분 문자열을 추출합니다.

slice()를 활용한 더 간결한 방법

참고로 substr()은 현재 ECMAScript 표준에서 폐기(deprecated)된 메서드이므로, 최신 프로젝트에서는 slice() 사용이 권장됩니다. slice()를 활용하면 위 로직을 한 줄로 줄일 수 있습니다.

const removeN = (str, num) => str.slice(num);
console.log(removeN('this is a string', 3)); // 's is a string'

slice(num)은 인덱스 num 위치부터 문자열 끝까지의 모든 문자를 반환하므로, 별도의 길이 계산 없이도 동일한 결과를 얻을 수 있습니다. 다만 num이 문자열 길이보다 클 경우 slice()는 빈 문자열('')을 반환한다는 점이 기존 코드와 다르므로, 원본 유지 여부 등 요구 사항에 맞게 적절히 선택하시기 바랍니다.