여기서 array는 임의의 Array 개체이다.
정렬할 Array의 요소의 개수가 2개 미만일 경우 'sort is not a function' 오류가 난다.
var btob = ['eunkwang', 'minhyuk', 'changsub', 'hyunsik', 'peniel', 'seongjae'];
btob.sort();
// ['changsub', 'eunkwang', 'hyunsik', 'minhyuk', 'peniel', 'seongjae']
var number = [4, 11, 2, 10, 3, 1];
number.sort() // [1, 10, 11, 2, 3, 4]
/* ASCII 문자 순서로 정렬되어 숫자의 크기대로 나오지 않는다.*/
/* 오름차순 */
number.sort(function(a,b) {
return a - b;
});
// [1, 2, 3, 4, 10, 11]
/* 내림차순 */
number.sort(function(a,b) {
return b - a;
});
// [11, 10, 4, 3, 2, 1]
첫 번째 인수가 두 번째 인수보다 작을 경우 - 값
두 인수가 같을 경우 0
첫 번째 인수가 두 번째 인수보다 클 경우 + 값
var btob = [
{ name : "은광", age : 33},
{ name : "민혁", age : 33},
{ name : "창섭", age : 32},
{ name : "현식", age : 31},
{ name : "프니엘", age : 30},
{ name : "성재", age : 28},
]
/* 이름 오름차순 정렬 */
btob.sort(function(a, b) {
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
};
// 민혁, 성재, 은광, 창섭, 프니엘, 현식
/* 이름 내림차순 정렬 */
btob.sort(function(a, b) {
return a.name > b.name ? -1 : a.name < b.name ? 1 : 0;
});
// 현식, 프니엘, 창섭, 은광, 성재, 민혁
/* 나이순으로 정렬 */
var sortingAge = "age";
btob.sort(function(a, b) {
return a[sortingAge]-b[sortingAge];
});
// 28, 30, 31, 32, 33, 33
참조 : 자바스크립트 정렬 함수, sort()