[JS] array.sort 메소드

SINGING BIRD·2023년 4월 12일

배열을 오름차순으로 정렬합니다.

** 배열 요소들을 문자열로 변환한 뒤 비교합니다.


  1. 비교 함수가 없을 때 동작
const salary = [3000, 5300, 4000, 3600, 7000];
console.log(salary.sort())

// [3000, 3600, 4000, 5300, 7000]



const salary = [3000, 5300, 4000, 3600, 7];
console.log(salary.sort())

// [3000, 3600, 4000, 5300, 7]
// 문자열로 변환한 뒤 비교하였기 때문에 7이 가장 뒤쪽에 있습니다.


cf)
console.log('7' > '3000')

// true
// 문자열 '7'은 문자열 '3000' 보다 큽니다. 
// 가장 첫 문자열이 크기 때문입니다.

  1. 비교함수가 있을 때 동작
    : compare 함수는 매개변수로 a, b 를 받는다.
    : compare 함수의 리턴값이 0보다 크면 b a 순서로 정렬
    : compare 함수의 리턴값이 0보다 작으면 a b 순서로 정렬
    : compare 함수의 리턴값이 0이면 원래 순서 대로
const salary = [3000, 5300, 4000, 3600, 7];
const sortedSalary = salary.sort( (a, b) => { return a - b } )
console.log(sortedSalary)

// [7, 3000, 3600, 4000, 5300]
// a - b 라는 비교함수를 넣어주어 실제 숫자의 순서대로 정렬 할 수 있습니다.


console.log('7' - '3000')
// -2993
// 결과와 같이 숫자로 이루어진 문자열을 빼면 숫자로 계산한 뒤 숫자를 리턴합니다.
// 따라서 비교함수로 a - b 를 넣게 되면 오름차순 정렬이 됩니다.

profile
good things take time

0개의 댓글