json 속성 별로 정렬

json 속성 별로 정렬이 필요할때가 있다.

이름, 나이등등 여러 속성 값들을 이용해서 정렬이 필요하다.

아래 함수를 이용해서 기본적으로 정렬이 가능하다.

콤마가 들어간 값도 parseInt하면 형 변환이 가능하기 때문에 고려하지 않아도 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
element : 정렬할 json
prop : json 포함된 속성
type : int 숫자형, string 문자열
asc : 오름차순 여부 (true, false)
*/
function (element, prop, type, asc) {
    switch (type) {
        case "int":
            element = element.sort(function (a, b) {
                if (asc) {
                    return (parseInt(a[prop]) > parseInt(b[prop])) ? : ((parseInt(a[prop]) < parseInt(b[prop])) ? -0);
                } else {
                    return (parseInt(b[prop]) > parseInt(a[prop])) ? : ((parseInt(b[prop]) < parseInt(a[prop])) ? -0);
                }
            });
            break;
        default:
            element = element.sort(function (a, b) {
                if (asc) {
                    return (a[prop].toLowerCase() > b[prop].toLowerCase()) ? : ((a[prop].toLowerCase() < b[prop].toLowerCase()) ? -0);
                } else {
                    return (b[prop].toLowerCase() > a[prop].toLowerCase()) ? : ((b[prop].toLowerCase() < a[prop].toLowerCase()) ? -0);
                }
            });
    }
    return element;
}
cs

'개발 > JQuery & Javascript' 카테고리의 다른 글

Clipboard 이용해서 Url를 복사해보자.  (2) 2019.05.30
text에 개행(newline) 넣기  (0) 2019.02.19
브라우저 화면 크기 & Element 크기  (0) 2018.07.31
Prototype  (0) 2018.04.13
null / undefined 비교  (0) 2018.04.13

+ Recent posts