[javascript] 객체의 속성 값을 기준으로 내림차순 정렬하기

자바스크립트에서는 객체의 속성 값을 기준으로 정렬하는 방법이 있습니다. 이를 활용하여 내림차순으로 정렬하는 방법에 대해 알아보겠습니다.

1. sort() 메소드를 사용한 내림차순 정렬

자바스크립트의 sort() 메소드를 사용하여 배열을 정렬할 수 있습니다. 정렬 함수를 매개변수로 전달하여 내림차순으로 정렬할 수 있습니다.

다음은 객체 배열을 속성 값으로 내림차순으로 정렬하는 예시입니다.

var objArray = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Bob', age: 20 }
];

objArray.sort(function(a, b) {
  return b.age - a.age;
});

console.log(objArray);

위 코드에서 sort() 메소드의 매개변수로 전달한 함수는 두 개의 인자를 받아서 내림차순 정렬을 하게 됩니다. b.age - a.age를 반환함으로써 age 속성 값을 기준으로 내림차순으로 정렬됩니다.

실행 결과는 다음과 같습니다.

[
  { name: 'Jane', age: 30 },
  { name: 'John', age: 25 },
  { name: 'Bob', age: 20 }
]

2. lodash 라이브러리를 사용한 내림차순 정렬

lodash 라이브러리는 자바스크립트에서 많이 사용되는 유틸리티 라이브러리입니다. 이를 활용하여 객체 배열을 속성 값으로 내림차순 정렬할 수 있습니다.

lodash를 사용하여 객체 배열을 속성 값으로 내림차순 정렬하는 예시입니다.

var _ = require('lodash');

var objArray = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Bob', age: 20 }
];

var sortedArray = _.orderBy(objArray, ['age'], ['desc']);

console.log(sortedArray);

위 코드에서 orderBy() 함수의 첫 번째 인자로 정렬 대상 배열을, 두 번째 인자로 정렬 기준 속성을, 세 번째 인자로 정렬 순서를 전달합니다. ['age']age 속성 값을 기준으로 내림차순 정렬함을 의미합니다.

실행 결과는 다음과 같습니다.

[
  { name: 'Jane', age: 30 },
  { name: 'John', age: 25 },
  { name: 'Bob', age: 20 }
]

참고 자료