inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지

배열 메서드-2

compare 함수 잘이해안가네요

해결된 질문

185

yh J

작성한 질문수 11

0

(a,b)가 어떤걸 의미하는지 모르겠고

-1, 1, 0을 반환했을때 배열내부적으로 어떻게 처리되는지도

모르겠습니다.


let colors = ["green", "blue", "purple"];

 const compare = (a, b) => {
  if (a > b) return -1;
  else if (a < b) return 1;
  else return 0;
};

colors.sort(compare);
console.log(colors);

javascript rest-api spa dom

답변 1

0

효빈 Hyobin

안녕하세요 🙂

2- 15 강의에서 설명하고 있는 것과 같이,
매개변수 a는 배열의 다음 요소를, 그리고 b는 배열의 이전 요소를 의미합니다.

 

그리고 compare 함수의 내부에서는
배열의 다음 요소인 a가, 배열의 이전 요소인 b보다 크기가 클 경우에는 -1을 반환하고,
a보다 b가 클 경우에는 숫자 1을 반환합니다.

 

sort 메서드는 compare 함수가 -1을 반환하면, a 가 b보다 앞에 있어야 한다고 판단을 하고
숫자 1을 반환하면 b가 a보다 앞에 있어야 한다고 판단합니다.

 

그렇기 때문에 해당 코드든 purple, green, blue의 순서로 정렬이 되는 코드입니다.

 

감사합니다.

 

0

yh J

배열의 다음 요소가 a이고 이전 요소가 b라면

배열요소에서 순서가 b,a인가요??

0

효빈 Hyobin

네 그렇게 설명한 것이 맞습니다.

 

조금 자세하게 설명드려보자면,
맨 처음으로는 blue와 green를 비교하고 1을 반환해 green이 blue보다 앞에 와야 한다고 판단합니다.

그 다음으로는 purple과 blue를 비교하고, -1을 반환하기 때문에 purple이 blue 보다 앞에 와야 한다고 판단을 합니다.

마찬가지로 purple과 green을 비교하고, purple이 green 보다 앞에 와야한다고 판단해

결론적으로는 purple, green, blue 순서대로 정렬을 합니다.

 

a와 b의 순서를 다음과 같이 설명한것은 설명의 편의를 위한 것이고,
더 정확하게 말해보자면, 이 sort라는 메서드가 어떤 알고리즘으로 동작하는지에 따라 비교되는 요소들의 순서와 방식에 따라 달라질 수 있습니다.

콜백 함수 메서드 등록

0

86

2

ssr방식 경험

0

80

1

compare 함수 설명에 오해의 소지가 있어보입니다.

0

85

2

API를 비동기 처리하는 이유가 끊겨서 그런건가요?

0

100

2

DOM 트리 보는 곳

0

85

1

배열과 객체의 구조분해할당 방법이 다른 이유

0

82

2

배열 메서드가 순수 함수인지 확인하는 방법

0

73

2

콜백 함수의 매개변수로 _를 쓰는 이유가 무엇인가요?

0

72

2

콜백 함수의 매개변수는 어떻게 구분되나요?

0

62

1

호이스팅 안쓰는게 좋나요?

0

55

2

함수 선언식과 함수 표현식은 어떤 경우에 쓰면 좋나요?

0

84

2

?. 연산자는 자바스크립트 연산자인가요?

0

48

1

JS의 논리 연산자 &&, ||가 리액트의 조건부 렌더링 &&, ||인가요?

0

88

2

자바스크립트 질문

1

104

2

동물앨범만들기 1-1 api 오류

0

57

2

CityList개발-handleLoadMore함수질문

0

75

1

객체와 배열의 const 차이

0

48

1

const 객체/배열 차이

0

67

2

header 개발 새로고침 오류

0

69

2

Promise 객체

1

59

2

cityList 렌더가 안되는 문제

0

58

2

init 함수 앞에 await

1

69

2

동물 앨범 만들기 pushtState 관련

0

62

2

동물 앨범 만들기 사진 관련 문의

0

78

2