인프런 커뮤니티 질문&답변

영준님의 프로필 이미지
영준

작성한 질문수

[웹 개발 풀스택 코스] 순수 자바스크립트 기초에서 실무까지

Array 객체 내장 함수

Array 객체 내장 함수 sort함수()

해결된 질문

작성

·

136

0

sort()함수 부분에 대해서 헷갈리는 부분이 있어서 질문드려요!

 

질문1. 인자 a, 인자b의 순서가 다름

  • 제가 알고 있기로는 인자 a - 100, b - 40 으로 알고 있습니다

  • 강사님이 설명하신것은 인자 a - 40, 인자 b - 100입니다.

  • console.log 출력 결과는 a - 100, b - 40 으로

  • 강사님 설명과 반대로 나와서 제가 출력시 실수한 부분이 있는지 질문드립니다

 

질문2. 양수일때 자리가 바뀐다

질문1. 에서 인자 a - 100, b - 40 이 맞다면

음수일때 자리가 바뀌는게 맞지 않나요??

 

바쁘시겠지만 답변부탁드립니다!

답변 1

1

개발자의 품격님의 프로필 이미지
개발자의 품격
지식공유자

제가 설명이 좀 틀린 부분이 있네요. 배열의 순서상 인덱스가 큰것이 b로 들어오는 것이 맞습니다. 결론적으로 음수일 때 바뀌는게 맞습니다.

하지만 우리가 생각하는 것처럼 a,b를 순차적으로 비교하지 않습니다.

아래 코드 예시를 보면, 콘솔창에 출력해보면, 모든 숫자를 차례로 비교하는 것이 아닌것이 확인이됩니다.

저도 착각한 부분이 있었는데, 질문해주셔서 감사합니다.

 

let points = [40, 100, 1, 5, 25, 10]; const ascPoints = points.sort((a, b) => { console.log(a, b); return a - b; });

 

===================

출력된 순서

====================

100 40

1 100

1 100 ===> 여기 이후 100을 더이상 비교하지 않습니다.

1 40

5 40

5 1

25 40

25 5

10 25

10 5

 

 

영준님의 프로필 이미지
영준
질문자

빠른답변감사합니다!

영준님의 프로필 이미지
영준

작성한 질문수

질문하기