본문 바로가기
etc/[구름] 구름톤 챌린지

구름톤 챌린지 1주차 학습 일기 v2

by 1two13 2023. 8. 20.
728x90
반응형

5일차 문제에서 알아두면 좋은 코드가 있어서 정리했다. 

배열안에 여러 개의 배열들이 있고, 각 배열의 두 번째 값을 기준으로 내림차순 정렬하는데, 만약 두 번째 값이 같은 값인 경우에 각 배열의 첫 번째 값을 기준으로 내림차순 정렬을 하고 싶었다. 

 

이를 해결하기 위한 아주 간단한 방법이 있다. 

예를 들어 arr이 아래와 같을 때, sort를 사용하여 정렬시키면 원하는 결과값을 가져올 수 있다. 

let arr = [
  [ 1, 1 ], [ 2, 1 ],
  [ 3, 2 ], [ 4, 1 ],
  [ 5, 2 ], [ 6, 2 ],
  [ 7, 3 ], [ 8, 1 ]
]

arr.sort((a, b) => b[1] - a[1] || b[0] - a[0]);

console.log(arr) /* [
  [ 7, 3 ], [ 6, 2 ],
  [ 5, 2 ], [ 3, 2 ],
  [ 8, 1 ], [ 4, 1 ],
  [ 2, 1 ], [ 1, 1 ]
] */

 

arr.sort((a, b) => b[1] - a[1] || b[0] - a[0]); 식은 아래와 동일하다.

if(b[0] - a[0] !== 0) {
  return b[0] - a[0];
} else {
  return b[1] - a[1];
}

 

참고자료


  • 구름톤 프로젝트 매니징 자료
728x90
반응형

댓글