[JavaScript] 정렬 sort

해버니·2022년 12월 23일
0

JavaScript

목록 보기
4/5
post-thumbnail

array.sort(sortFunction)

여기서 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]



Object 정렬

첫 번째 인수가 두 번째 인수보다 작을 경우 - 값
두 인수가 같을 경우 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()



0개의 댓글