[자바스크립트] 배열 안 객체 정렬하기

당근 먹는 쿼카·2022년 12월 17일
0

개발 로그

목록 보기
9/16
post-thumbnail

자바스크립트 배열 안 객체 정렬하기

안녕하세요, 김당퀔 🥕입니다!

배열 안 객체

핀테크 팀 과제를 진행하던 중 구매 내역을 불러오는 api가 주는 응답값이 배열 안에 객체가 있는 형태였습니다. 보통 쇼핑몰에서 구매 내역을 보게 되면 최신순으로 나열이 되거나 과거부터 최근까지 순서로 내역이 나열이 되는데 api가 주는 응답값 안의 객체들은 날짜 순이 아니었고, 이것을 날짜 순으로 정렬해 주기 위하여 배열 안 객체를 어떻게 나열하면 좋을지 생각해 보게 되었습니다.

예시

const arr = [
  { time: '2022-12-17',
   	name: 'a',
   	number: '1'
  },
  { time: '2022-12-17',
   	name: 'b',
   	number: '2'
  },
  { time: '2022-12-15',
   	name: 'c',
   	number: '3'
  },
  { time: '2022-12-19',
   	name: 'd',
   	number: '4'
  }

arr 배열 안에는 time, name, number의 값을 가진 객체 4개가 있습니다. 이것을 날짜 순으로 정렬하게 된다면 number의 순서는 3, 1, 2, 4가 되겠네요.

arr.sort((a, b) => {
  return a.time < b.time ? -1 : a.time > b.time ? 1 : 0
})

코드를 이렇게 작성하게 되면 time의 값들을 비교하여서 -1 혹은 1 혹은 0의 점수를 주게 되어서 우선 순위를 정할 수 있게 됩니다.

결론

숫자들을 비교할 때는 비교 연산자만 사용해서 하였지만 문자를 비교하기 위해서는 -1, 1, 0과 같은 숫자값을 주어서 비교해 주어야 합니다.

0개의 댓글