안녕하세요
실습문제를 풀다 오류가 생겨 질문드립니다.
책에 Array 객체의 메소드 중에서 sort()는 문자열 배열에만 적용 된다고 쓰여 있어서
정수배열은 쓸 수 없다고 생각했는데
자료실에 나온 정답에는 sort()메소드를 사용하여 정수배열을 정렬했습니다.
그리고 정답 코드를 실행해 보니 정렬이 될 때도 있고 안 될때도 있었습니다.
정수배열을 조건문을 사용해서 정렬할 필요 없이
sort메소드를 사용하면 자동으로 형변환이 되는 것 인가요?
sort()는 정수들을 문자열로 생각하여 정렬합니다.
배열이 [3,1, 5] 는 ["3", "1", "5"] 의 문자열 배열로 생각하여 정렬하면 ["1", "3", "5"] 즉 [1, 3, 5]로 됩니다.
그러나 만일 배열이 [2, 11, 5]라면 이는 문자열 배열 ["2", "11", "5"] 로 간주되어 정렬되면 결과는 ["5", "2", "11"] 즉 [5,2,11]이 됩니다. 정렬이 잘못되는 것이지요.
그래서 정수 배열은 정렬이 안된다는 것입니다.
sort()를 정확히 활용하는 방법은 홈페이지의 Board의 Admin's Blog 에 있습니다. 참고하면 도움이 될 것입니다