• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

sort 할 때 문자열은 자동으로 유니코드값으로 변환되어 계산되지 않나요?

23.02.04 16:49 작성 조회수 313

0

 timeLine.sort((a, b) =>
    a[0] == b[0] ? a[1] - b[1] : a[0] - b[0]
  );

 

sort는 문자열을 값으로 가진 비교는 자동으로 유니코드값으로 변환되어 비교하는줄 알았는데 저렇게 하니

 

[ [ 5, 's' ], [ 12, 's' ],

[ 14, 's' ], [ 14, 'e' ],

[ 15, 'e' ], [ 15, 's' ],

[ 18, 'e' ], [ 20, 'e' ],

[ 20, 's' ], [ 30, 'e' ] ]

이렇게 s가 먼저 나올 때도 있고 e가 먼저 나올때도 있고 하더라구요

 

원래 sort 할 때 문자열은 자동으로 유니코드값으로 변환되어 비교되지 않나요?

답변 1

답변을 작성해보세요.

0

안녕하세요^^

자바스크립트 sort함수는 아무 인자도 넘기지 않았을 때 자동으로 문자열로 변환한 다음 유니코드에 의해 정렬을 해줍니다.

만약 인자(콜백함수)를 넘기면 타 언어와 달리 정확하게 문자를 아스키값으로 바꿔 그 계산값이 양수, 0, 음수로 전달되게 해주어야 합니다.