문자열을 입력받아 스네이크 케이스(snake case)로 변환하는 JavaScript 함수를 작성해야 합니다.
스네이크 케이스란?
스네이크 케이스는 문자열에서 단어 사이의 공백을 언더스코어(_)로 대체하고, 모든 글자를 소문자로 변환하여 작성하는 표기 방식입니다. 예를 들어 "This is a simple sentence"라는 문장은 스네이크 케이스로 변환하면 "this_is_a_simple_sentence"가 됩니다. 이 표기법은 Python 코드 작성이나 데이터베이스 컬럼명 정의 등 개발 환경에서 매우 자주 사용됩니다.
구현 예제
이를 구현한 코드는 다음과 같습니다.
const str = 'This is a simple sentence';
const toSnakeCase = (str = '') => {
const strArr = str.split(' ');
const snakeArr = strArr.reduce((acc, val) => {
return acc.concat(val.toLowerCase());
}, []);
return snakeArr.join('_');
};
console.log(toSnakeCase(str));출력 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
this_is_a_simple_sentence
코드 동작 원리
함수의 동작 과정을 단계별로 살펴보면 다음과 같습니다.
- split(' ') : 입력받은 문자열을 공백을 기준으로 분리하여 단어들의 배열을 생성합니다.
- reduce() : 배열의 각 단어를 순회하면서
toLowerCase()메서드로 모두 소문자로 변환한 뒤, 새로운 배열에 누적합니다. - join('_') : 소문자로 변환된 단어들을 언더스코어(_)로 연결하여 최종적인 스네이크 케이스 문자열을 완성합니다.
이처럼 JavaScript의 내장 배열 메서드만 활용하면 별도의 외부 라이브러리 없이도 간결하고 가독성 좋게 스네이크 케이스 변환 함수를 구현할 수 있습니다.