본문 바로가기

JavaScript

JavaScript sort(정렬)

저번에 사용한 filter 다음으로 적을 내용은 sort에 대해서입니다.

 

 

let arr = [1,3,10,4,5,2,6,8,7,9];

    arr.sort(function (a, b) { // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        return a - b;
    })

배열 안에서 뒤섞여있던 값들을 일정하게 정렬하게 해주는 메서드입니다.

 

내림차순도 가능합니다 A와 B의 위치를 바꿔주기만 하면 내림차순이 됩니다.

 

 let arr = [1,3,10,4,5,2,6,8,7,9];

    arr.sort(function (a, b) { // [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
        return b - a;
    })

 

function을 사용하지 않고 메서드만 사용해도 정렬은 됩니다.

 

let arr = [1,3,10,4,5,2,6,8,7,9];

    arr.sort(); // [1, 10, 2, 3, 4, 5, 6, 7, 8, 9]

하지만 원하는 결과는 아닐 거라 생각합니다.

그냥 sort메서드만 사용하게 되면 유니코드 순서에 따라 값을 정렬하기 때문입니다.

 

 

 

let arr = ['d','c','a','b'];
    arr.sort(); // ['a', 'b', 'c', 'd']

문자열 오름차순에서는 사용 가능합니다.

 

 

let arr = [
        {number : 2, name : "B"},
        {number : 5, name : "E"},
        {number : 4, name : "D"},
        {number : 1, name : "A"},
        {number : 6, name : "F"},
        {number : 3, name : "C"},

    ]
    arr.sort(function (a, b) {
        return a.number - b.number;
    })
    /*
    0: {number: 1, name: 'A'}
    1: {number: 2, name: 'B'}
    2: {number: 3, name: 'C'}
    3: {number: 4, name: 'D'}
    4: {number: 5, name: 'E'}
    5: {number: 6, name: 'F'}
    */

배열 안 객체의 키를 이용해 정렬한 코드입니다.

사용하던 A , B 뒤에 키값을 입력해주면 그 키값에 들어있는 데이터로 정렬을 합니다.

 

저는 배열에 새로운 객체를 추가할 때 많이 사용했습니다.

다른 방법과 설명도 많으니 더 찾아보시면 감이 잡히실 겁니다.

 

 

'JavaScript' 카테고리의 다른 글

JavaScript Filter(필터)  (0) 2021.12.15