한글 우선 정렬 - OhMinsSup/tip-review GitHub Wiki
function hangulFirstCompare(a, b) {
function addOrderPrefix(s) {
var code = s.toLowerCase().charCodeAt(0);
var prefix;
// 한글 AC00—D7AF
if (0xac00 <= code && code <= 0xd7af) prefix = '1';
// 한글 자모 3130—318F
else if (0x3130 <= code && code <= 0x318f) prefix = '2';
// 영어 소문자 0061-007A
else if (0x61 <= code && code <= 0x7a) prefix = '3';
// 그외
else prefix = '9';
return prefix + s;
}
a = addOrderPrefix(a);
b = addOrderPrefix(b);
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
var array = ["123", "asbe", "가다다", "가나다", "신승엽", "ㅋㅋㅋ", "나라", "나가라"];
array.sort(hangulFirstCompare);
console.log(array);