728x90
📍 2차원 행렬 sort
2차원 행렬 각각의 두 값을 더해서 오름차순 / 내림차순으로 sort
하고 싶을 때 다음과 같이 작성할 수 있다. 만약, `arr[0]`끼리 같은 값이면 `arr[1]`을 비교하는 조건이 더해질땐 다음과 같이 사용 할 수 있다.
728x90
const arr = [ [6, 6], [2, 2], [4, 3], [4, 5], [10, 3], ] // 오름차순 arr.sort((a, b) => a[0] + a[1] - (b[0] + b[1])) console.log(arr) 👉🏽 [ [ 2, 2 ], [ 4, 3 ], [ 4, 5 ], [ 6, 6 ], [ 10, 3 ] ] // 내림차순 arr.sort((a, b) => b[0] + b[1] - (a[0] + a[1])) console.log(arr) 👉🏽 [ [ 10, 3 ], [ 6, 6 ], [ 4, 5 ], [ 4, 3 ], [ 2, 2 ] ] // arr[0]이 같으면 arr[1] 기준으로 오름차순 정렬 arr.sort((a, b) => { if (a[0] === b[0]) { return a[1] - b[1] } else { return a[0] - b[0] } }) console.log(arr) 👉 [ [ 2, 2 ], [ 4, 3 ], [ 4, 5 ], [ 6, 6 ], [ 10, 3 ] ]
반응형
'Algorithm > 논리적사고(Logical Think)' 카테고리의 다른 글
[ 논리적사고 ] - 누적 값이 point보다 높은지 낮은지 비교하고 추가하기 (0) | 2021.09.08 |
---|---|
[ 논리적사고 ] - 배열 중간에 있는 값을 맨 앞으로 옮기기 (0) | 2021.09.03 |
[ 논리적사고 ] - string함수 사용하지 않고 자연수 거꾸로 뒤집기 (0) | 2021.08.20 |
[ 논리적사고 ] - 자연수의 자릿수 합 구하기 (0) | 2021.08.20 |
[ 논리적사고 ] - number 함수를 사용하지 않고 순서 유지한 채로 number 만들기 (0) | 2021.08.20 |
댓글