요약

JS에서는 배열의 원소를 숫자로 넣었다고해도 각 원소를 문자열로 처리해버린다. 따라서 단순히 Array.sort()를 한다고 했을 때 내부 원소 하나하나를 유니코드로 치환해서 오름차순으로 정렬시키기 때문에 이상한 숫자가 나오는 것이다.

 

추가로 원본 배열이 정렬되는 것이기 때문에 원본 배열을 따로 저장하거나 깊은 복사를 한 뒤 변수를 따로 선언하여 사용해야 한다

MDN

 

오름차순, 내림차순 정렬

 

//오름차순
arr1.sort((a, b) => a - b)
    
    
//내림차순
arr1.sort((a,b) => b - a)

 

 

Array sort is not working correctly in JavaScript

I have tried this code function sort() { var ary = [2, 1, 0.4, 2, 0.4, 0.2, 1.5, 1, 1.1, 1.3, 1.2, 0.2, 0.4, 0.9]; alert(ary.sort(function(a, b) {return a < b;})); } sort(); bu...

stackoverflow.com

 

복사했습니다!