컴퓨터
첫 페이지 랜덤 글 회원가입 로그인
비공개 손님 … 2006-05-09 23:05:55
URL 복사 모바일 화면
[질문] 자바 스크립트 질문...

<html>
<head>
<title>내장 객체 (Array 객체 2)</title>
<script language="javascript">
<!--
function CompareNumbers(a, b)
{
        (a, b, a - b + "<br>")
        return a - b         
}
//-->
</script>
</head>
<body>
<script language="javascript">
<!--
ArrayObj = new Array()

ArrayObj[0] = "10"
ArrayObj[1] = "32"
ArrayObj[2] = "23"
ArrayObj[3] = "5"
("원래 배열 순서 : " + ArrayObj.join() + "<br>")
("역순 : " + ArrayObj.reverse().join() + "<br>")
("정렬 : " + ArrayObj.sort().join() + "<br>")
("매개변수 지정 정렬 : " + ArrayObj.sort(CompareNumbers).join() + "<br>")
//-->
</script>

</html>

소스 모양이 이러한데요...
궁금한 것이 두 가지나 있네요...

1. 우선 sort()로 정렬한 값은 저장이 안되는건가요~?
조금 손을 봐서 네번째 출력 부분을 보니 순서가 역순으로 정렬했을때 값 그대로 하는것 같더군요...

2. 두번째는 매개변수 지정 정렬에서 어떻게 저런 결과가 나오는지 잘 모르겠습니다... a - b 를 리턴하라고 되어 있는데... 그 값으로 정렬된건 아니고... 생각을 해봐도 무슨 과정이 스쳐지나간건지 잘 모르겠네요... 뭐 a - b 가 무슨 순서로 들어간건지도 잘 모르겠네요 ;;;

자세히 아시는 분은 가르침을 주세요...

일반 | 562명이 읽었어요. 216.73.217.52

0
1 비공개 손님 … 2006-05-10 01:48:44 x
1 / sort에는 밑의 매개변수 지정 정렬 같이 함수를 매개값으로 받는 모양인데..
정렬하기 위해 array의 하나 하나의 element를 비교할 때 이 함수를 사용하는 모양입니다. 10, 32, 23, 5 라는 순서로 들어 있으면 다음과 같은 방식으로 sort가 이루어진다고 보시면 될 겁니다. (sort 안에 들어간 매개변수를 func라고 합시다.)

a = 10, b = 32 -> func(a, b)가 0보다 크면 a와 b를 바꿈 else 그대로
...

sort()엔 아무 매개변수도 주어지지 않았으므로 a, b를 input으로 받아 무조건
return 0가 되는 함수가 들어갔다고 보시면 이해가 되실라나요. 어떤 값이든
0이므로 순서가 바뀌지 않은 그대로 나오게 됩니다.

2 / 매개변수 지정 정렬의 경우에는 func(a, b) = a - b이므로 a - b값이 0보다 크면 a와 b를 바꿉니다. 그러므로 오름차순 정렬이 되는 거죠.
2 비공개 손님 … 2006-05-10 18:55:09
답변 감사합니다 ^^;
한번 더 돌려보면서 살펴봐야겠네요
3 비공개 손님 … 2017-05-04 13:39:04
asdfasdfasdfasfd
댓글을 작성하실 수 없습니다.
(권한이 없는 회원레벨)
목록으로
△ 이전글: [질문]셀러론은 전부 소켓 478인가요? [2]
▽ 다음글: [질문] 파워 계산해 주는 거 없나요? [11]
이용약관 | 광고/제휴 | 개인정보취급방침 | 문의/신고 | 모바일 TE31 | 서버 부하 : 20.5%
실시간 Issue 커뮤니티 TE31 [알지롱] ⓒ 2002-2026
TOP arrow_upward