문장(sentence)이란 공백으로 구분된 여러 단어들이 하나로 연결된 문자열을 의미합니다. 이번 글에서는 문장 문자열을 입력받아 뒤에서 두 번째 단어의 글자 수를 세는 JavaScript 함수를 작성해 보겠습니다. 만약 문자열에 포함된 단어가 2개 이하라면 함수는 0을 반환하도록 처리합니다.
문제 이해하기
예를 들어, 입력 문자열이 다음과 같다고 가정해 보겠습니다.
const str = 'this is an example string';
이 경우 기대되는 출력값은 다음과 같습니다.
const output = 7;
'example'이라는 단어가 정확히 7개의 문자로 이루어져 있기 때문입니다.
구현 방법
핵심 아이디어는 간단합니다. split(' ') 메서드로 문장을 단어 배열로 나눈 뒤, 배열의 길이를 확인하고 뒤에서 두 번째 요소의 길이를 반환하면 됩니다.
코드는 다음과 같습니다.
const str = 'this is an example string';
const countSecondLast = (str = '') => {
const strArr = str.split(' ');
const { length: len } = strArr;
if(len <= 2){
return 0;
};
const el = strArr[len - 2];
const { length } = el;
return length;
};
console.log(countSecondLast(str));코드 설명
str.split(' ')은 공백을 기준으로 문자열을 잘라 단어 배열을 생성합니다. 배열의 길이가 2 이하이면 뒤에서 두 번째 단어가 존재하지 않으므로 0을 반환하고, 그렇지 않은 경우 인덱스 len - 2에 해당하는 단어의 길이를 그대로 반환합니다.
실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
7