작성
·
207
0
안녕하세요 !
기존에 배열을 정렬할 때, 화살표 함수를 사용하다가
곧장 arr1.sort()를 하니 어색해서요 !
arr1 = [1,3,9,5,2]라는 배열이 있을 때,
arr1.sort((a,b) => a-b);하는것과
arr1.sort().reverse(); 하는 것은 코딩 스타일의 차이인가요?
답변 3
3
오개념이 생길 것 같아 윗분 대답에 첨언합니다.
일단 코딩스타일의 차이가 아닙니다. 질문자님처럼 화살표 함수를 이용해서 파라미터를 제시해주는 게 더 정확한 방법입니다.
sort() 함수는 파라미터가 입력되지 않으면 유니코드 순서에 따라서 값을 정렬합니다. 그래서 한자리 숫자는 상관없지만 두 자리 이상의 숫자는 윗 분 대답처럼 결과가 나옵니다. 사전에서 'b'보다 'apple'이 먼저 오는 것과 같은 이치입니다.
해당 문제는 원소의 크기가 1에서 30000까지의 수이기 때문에 반드시 정렬 기준을 제시해주어야 합니다.
1
원하시는 대답이 아닐 지도 모르겠지만,,,
일의 자리 숫자만 있을 경우에는 sort()와 a - b가 차이가 없을 지는 몰라도 10의 자리 숫자 까지 포함한다면 다음과 같습니다 !!
let a = [1, 3, 9, 5, 2, 10];
a.sort(); => [1, 10, 2, 3, 5, 9]
a.sort((a,b) => a - b); => [1, 2, 3, 5, 9, 10]
a.sort().reverse(); => [9, 5, 3, 2, 10, 1]
1
네. 제가 질문에 대해서 깊은 생각없이 답변한 것 같네요. 잘 알려주셔서 감사합니다.
두 자리 이상 숫자에 대한 정렬 내용은 "섹션7 장난꾸러기 현수영상"에서 언급은 하고 있습니다.