[javascript] 문자열을 알파벳 순으로 정렬하기

자바스크립트에서 문자열을 알파벳 순으로 정렬하는 방법에 대해 알아보겠습니다.

1. sort() 메소드 사용

자바스크립트의 sort() 메소드를 사용하면 배열을 정렬할 수 있습니다. 따라서 우선 문자열을 배열로 변환한 다음, sort() 메소드를 이용해 정렬할 수 있습니다.

const str = "apple banana cherry";
const arr = str.split(" ");
arr.sort();
const sortedStr = arr.join(" ");
console.log(sortedStr);

위의 예제 코드에서는 split() 메소드를 사용하여 문자열을 공백을 기준으로 분할하고, sort() 메소드를 사용하여 배열을 정렬합니다. 마지막으로 join() 메소드를 사용하여 다시 문자열로 변환한 뒤, 정렬된 문자열을 출력합니다.

2. localeCompare() 메소드 사용

sort() 메소드를 사용하는 대신, localeCompare() 메소드를 이용하여 문자열을 비교하고 정렬하는 방법도 있습니다.

const str = "apple banana cherry";
const arr = str.split(" ");
arr.sort((a, b) => a.localeCompare(b));
const sortedStr = arr.join(" ");
console.log(sortedStr);

위의 예제 코드에서는 sort() 메소드의 파라미터로 콜백 함수를 전달하고, 이 콜백 함수에서 localeCompare() 메소드를 사용하여 문자열을 비교합니다.

3. 대소문자 구분하기

기본적으로 자바스크립트의 문자열 정렬 메소드는 대소문자를 구분하지 않고 정렬합니다. 대소문자를 구분하여 정렬하고 싶다면, localeCompare() 메소드의 파라미터로 {sensitivity: 'base'}를 전달해주면 됩니다.

const str = "apple Banana Cherry";
const arr = str.split(" ");
arr.sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'}));
const sortedStr = arr.join(" ");
console.log(sortedStr);

위의 예제 코드에서는 localeCompare() 메소드의 세 번째 파라미터로 {sensitivity: 'base'}를 전달하여 대소문자를 구분하여 정렬합니다.

마무리

이와 같은 방법으로 자바스크립트에서 문자열을 알파벳 순으로 정렬할 수 있습니다. sort() 메소드와 localeCompare() 메소드를 적절하게 활용하여 원하는 결과를 얻을 수 있습니다.

참고 자료