원배열의 문자열을 정렬하는 배열의 메서드
맨 앞글자의 문자열을 A-Z, a-z의 순서로 정렬한다.
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// ["Dec", "Feb", "Jan", "March"]
배열 메서드를 사용하기 위해 문자열 메서드 split을 이용하여 문자열을 배열로 변환한다.
sort메서드로 정렬 후, reverse 메서드로 모든 배열의 인덱스를 거꾸로 뒤집는다. join메서드를 이용하여 배열을 다시 문자열로 변환한다.
function solution(s) {
var answer = "";
answer = s.split("").sort().reverse().join("");
return answer; // gfedcbZ
}
solution("Zbcdefg");
숫자 역시 유니코드의 순서에 맞춰 정렬하므로 맨 앞의 숫자가 무엇이냐에 따라 정렬 순서가 달라진다. 예를 들어 유니코드 순서에 맞춰 정렬한 숫자는 123, 21, 333이 될 것이다.
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// [1, 100000, 21, 30, 4]
return값 > 0
: a가 b보다 앞(작은인덱스)에 위치함
return값 = 0
: a와 b의 위치를 변경하지 않음
return값 < 0
: b가 a보다 앞(작은인덱스)에 위치함
array1.sort((a,b)=>{return a-b;})
console.log(array1)
// [1, 4, 21, 30, 100000]
const array1 = [1, 30, 4, 21, 100000];
array1.sort((a,b)=>{return b-a;})
// [100000, 30, 21, 4, 1]