-
JavaScript sort()메서드javascript 2023. 3. 19. 14:15728x90
JavaScript sort() 메서드에 대해서
sort() 메서드는 무엇일까?
sort( ) 메서드는 배열의 요소를 정렬한다. 원본 배열의 요소 순서를 변경하므로, 배열 자체가 변경된다. 이 메서드는 기본적으로 문자열을 변환한 후 유니코드 순서로 정렬된다. 따라서 숫자를 정렬할 때는 정렬 기준을 정의해주어야 한다.
arr.sort([ compareFunction ])기본적으로 오름차순으로 정렬된다.
const fruits = ['banana','orange','apple','grape']; fruits.sort(); console.log(fruits); //['apple', 'banana', 'grape', 'orange']만약 내림차순으로 정렬하고 싶다면
const numbers = [5,2,8,1,4]; numbers.sort((a,b)=>b - a); console.log(numbers); //[8, 5, 4, 2, 1]compareFunction 자리에 콜백 함수를 사용하여 정렬 기준을 정의할 수 있다. 이 콜백 함수는 두 개의 인자( ‘a’, ‘b’ )를 받아서 ‘-1’ , ‘0’, ‘1’ 중 하나를 반환해야 한다. 반환값이 음수면 ‘a’가 ‘b’보다 작은 것으로 간주해 ‘a’가 ‘b’ 앞으로 정렬된다. 반환값이 양수이면 ‘a’가 ‘b’보다 큰 것으로 간주하여 ‘a’가 ‘b’ 뒤로 정렬된다. 반환값이 ‘0’이면 ‘a’와 ‘b’의 순서는 변경되지 않는다.
const fruits = ['banana','orange','apple','grape']; fruits.sort((a , b) => a.length - b.length ); console.log(fruits); //['apple', 'grape', 'banana', 'orange']하지만 sort( ) 메서드는 큰 배열을 정렬할 땐 속도가 느려질 수 있다.
이 메서드에 대한 주관적인 생각
이리저리 순서가 정렬되어 있지 않는 배열에 sort( ) 메서드를 사용하고 큰 수를 찾던가 작은 수를 찾는 방법일 때 많이 이용했던 것 같다. 그래서 순서 정렬이 전부일 거라 생각했는데 자세히 파고 드니 콜백함수를 어떻게 사용하느냐에 따라 다르고 지금까지 한 배열은 짧아서 sort로만 잘 이용할 수 있었는데 수백 가지의 데이터들을 정렬해야 할 상황이 올 때 어떤 방식으로 코드를 짜야할지 고민할 수 있는 기회가 되었다.
반응형'javascript' 카테고리의 다른 글
JavaScript match() 메서드 (0) 2023.03.21 JavaScript 이벤트 처리기 함수 - e.currentTarget (0) 2023.03.20 JavaScript toLocaleString()메서드 (2) 2023.03.18 JavaScript concat()메서드 (0) 2023.03.15 JavaScript join()메서드 (0) 2023.03.12