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

JavaScript 문자열 자르기: 말줄임표(...)를 붙여 길이를 제한하는 truncate 함수 구현하기

문제 정의

첫 번째 인수로 문자열을, 두 번째 인수로 숫자(최대 길이)를 받는 JavaScript 함수를 작성해야 합니다. 이 함수는 다음 세 가지 조건을 모두 충족해야 합니다.

  • 문자열 자르기: 문자열의 길이가 지정된 최대 길이(두 번째 인수)보다 길면 문자열을 잘라내고, 잘라낸 문자열 끝에 "..."(말줄임표)를 붙여 반환합니다.
  • 말줄임표도 길이에 포함: 끝에 추가되는 점 세 개(...) 역시 전체 문자열 길이에 포함되어야 합니다.
  • 예외 처리: 다만 지정된 최대 길이가 3 이하인 경우에는, 점 세 개를 잘라낼 문자열의 길이를 계산할 때 포함하지 않습니다.

예제 코드

위 조건을 구현한 코드는 다음과 같습니다.

const str1 = 'This is an example string';
const str2 = 'abc';

const truncate = (str, len) => {
  if (str.length > len) {
    if (len <= 3) {
      return str.slice(0, len - 3) + "...";
    } else {
      return str.slice(0, len) + "...";
    }
  } else {
    return str;
  }
};

console.log(truncate(str1, 5));
console.log(truncate(str2, 3));

실행 결과

콘솔에 출력되는 결과는 다음과 같습니다.

This ...
abc

코드 동작 원리

함수의 흐름을 단계별로 살펴보면 다음과 같습니다.

  1. 먼저 str.length > len 조건으로 문자열이 최대 길이를 초과하는지 확인합니다. 초과하지 않는다면 잘릴 필요가 없으므로 원본 문자열을 그대로 반환합니다.
  2. 문자열을 잘라야 하는 경우에는 len 값이 3 이하인지에 따라 처리 방식이 달라집니다.
  3. len이 3보다 크면 slice(0, len)으로 앞부분을 추출한 뒤 "..."를 이어 붙입니다. 예를 들어 truncate(str1, 5)는 앞 5글자인 "This" 뒤에 "..."를 붙여 "This ..."를 반환합니다.
  4. len이 3 이하이면 slice(0, len - 3)을 사용해 잘라낸 문자열을 생성합니다.
  5. 잘릴 필요가 없는 짧은 문자열(예: 길이 3짜리 "abc"에 최대 길이 3을 지정한 경우)은 수정 없이 그대로 반환됩니다.