Array.prototype.sort

Adela·2020년 4월 25일
0

ALGORITHM

목록 보기
1/4

arr[0]에 대해서 나머지원소들의 크기를 비교해서
arr[0]보다 크면 자리를 index를 바꾼다
arr[1]...반복의 반복 2중for문

// sort: arr의 원소들을 특정 로직에 따라 정렬한 새로운 arr
var arr2 = [];
for(var i=0; i<arr.length; i++)
  arr2.push(arr[i]);

for(var i=0; i<arr2.length; i++) {
  for(var j=i+1; j<arr2.length; j++) {
    //j자신을 제외한 다음원소부터 비교
    if (arr2[i].x < arr2[j].x) {
      var temp = arr2[i];
      //이 부분없이 바로 아래실행하면 arr2[i]값이 날라가고 오버라이드됨
      arr2[i] = arr2[j];
      arr2[j] = temp;
    }
  }
}

var arr2 = arr.sort((a,b) => {
  if(a.x < b.x) return 1;
  if(a.x == b.x) return 0;
  return -1;
});
console.log(arr2);


var arr2 = arr.sort((a,b) => a.x < b.x ? 1 : (a.x == b.x ? 0 : -1));
console.log(arr2);

sort메소드의 인자로 주어진 함수의 리턴값은
1, 0, -1 대신 양수, 0, 음수도 가능하다.
따라서 .sort((a,b) => b-a)로 표기하는 것도 가능하다.

profile
👩🏼‍💻 SWE (FE)

0개의 댓글