저번에 사용한 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 |
---|