etc/[구름] 구름톤 챌린지
구름톤 챌린지 1주차 학습 일기 v2
1two13
2023. 8. 20. 11:27
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
반응형