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

드림프론트디벨롭님의 프로필 이미지
드림프론트디벨롭

작성한 질문수

자바스크립트 제대로 배워볼래?

Spread Operator

선생님 안녕하세요. array내장함수 수업듣는중 이해가 안되는 부분이있어서 질문드립니다.

작성

·

281

0

선생님 안녕하세요. array내장함수 수업듣는중 이해가 안되는 부분이있어서 질문드립니다.

var person = [ {name:"유재석", point:78}, {name:"김종국", point:92}, {name:"양세찬", point:76}, {name:"하하", point:81}, ]; person.sort(function(a,b){ if(a.point > b.point){ return -1; } else if (a.point < b.point) { return 1; } else { return 0; } }); console.log(person);

 

변수안에 객채를 생성하고 sort안에 함수선언해서 조건문 넣는부분까지는 이해가 되는데요.

함수안에 매개변수로 비교하는부분에서요 a,b에 대한 비교부분에서 이해가 잘안됩니다.

매개변수안에서 a,b로 어떤 구조로 4개의 객체를 비교하는지 알려주시면 감사하겠습니다

답변 1

0

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

안녕하세요. Array객체의 내장함수인 sort() 함수가 내부적으로 배열에 있는 모든 요소를 하나씩 비교하는 코드가 들어가 있다고 생각하시면 쉽습니다.

첫번째 요소와 두번째 요소를 비교해서 위치를 바꿉니다.

두번째 요소와 세번째 요소를 비교해서 위치를 바꿉니다.

이런식으로 모든 요소를 비교해서 위치를 바꾼 후, 다시 처음 요소로 돌아가서 다시 처음부터 동일한 작업을 반복적으로 수행하면서 더이상 요소의 위치가 바뀌지 않을때까지 수행하고 나면, 작업을 종료합니다.

이러한 기능이 sort()함수에 내장되어 있습니다.

드림프론트디벨롭님의 프로필 이미지
드림프론트디벨롭

작성한 질문수

질문하기