본문 바로가기
Algorithm/논리적사고(Logical Think)

[ 자바스크립트(JavaScript) ] 2차원 행렬 sort하기

by YWTechIT 2021. 8. 20.
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 ] ]
반응형

댓글