Home JS[array.sort()]
Post
Cancel

JS[array.sort()]

array.sort() : 배열을 오름차순 정렬

1
2
3
4
5
6
let arr = [1, 3, 5, 2, 4];

arr.sort();
console.log(arr); //[1,2,3,4,5]
arr.sort().reverse();
console.log(arr); //[5,4,3,2,1]

추가 sort()의 함정

sort()를 적용하면 문자나 숫자는 알맞게 정렬해준다. 하지만 숫자 형태의 문자 ['10','9','11'] 을 sort() 하면

1
2
3
4
let arr = ["10", "9", "11"];

arr.sort();
console.log(arr); //['10','11,'9']

문자를 비교하면 앞자리의 문자 9보다 1이 작기 때문에 '10','11''9'보다 앞으로 온다

해결방법

.sort((a, b) => a-b) : 오름차순
.sort((a, b) => b-a) : 내림차순
1
2
3
4
5
6
let arr = ["10", "9", "11"];

arr.sort((a, b) => a - b);
console.log(arr); //['9','10,'11']
arr.sort((a, b) => b - a);
console.log(arr); //['11','10,'9']

a-b 또는 b-a의 값이 양수가 나오면 배열에서 자리를 교체하고 음수가 나오면 교체하지 않는다.

참고자료 https://change-words.tistory.com/64

This post is licensed under CC BY 4.0 by the author.