문제 상황
JavaScript로 문자열과 숫자를 입력받는 함수를 작성해야 합니다. 이 함수는 주어진 문자열을 지정된 길이까지만 잘라낸 뒤, 원본 문자열보다 짧아졌다면 끝에 "..."를 붙여 반환합니다. 만약 아무것도 잘리지 않았다면, 즉 문자열 길이가 지정한 길이 이하라면 원본 문자열을 그대로 반환하면 됩니다.
이런 기능은 게시글 목록이나 카드 UI에서 긴 텍스트를 미리보기 형태로 보여줄 때 매우 유용하게 사용됩니다.
예제 코드
다음은 위 요구사항을 구현한 코드입니다.
const str = 'Testing String';
const num = 8;
const limitString = (str = '', num = 1) => {
const { length: len } = str;
if (num < len) {
return str.slice(0, num) + '...';
} else {
return str;
}
};
console.log(limitString(str, num));코드 설명
- 구조 분해 할당(
const { length: len } = str;)을 사용해 문자열의 길이를len변수에 담습니다. - 지정한 길이
num이 문자열 길이보다 작으면slice(0, num)으로 앞부분만 잘라내고'...'을 이어 붙입니다. - 그렇지 않으면 잘릴 필요가 없으므로 원본 문자열을 그대로 반환합니다.
실행 결과
위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.
Testing ...
원본 문자열 'Testing String'은 14글자이고 제한 길이가 8이므로, 앞 8글자인 'Testing '만 남고 말줄임표가 붙어 'Testing ...'가 출력됩니다. 반대로 제한 길이가 14 이상이라면 원본 문자열이 그대로 반환됩니다.