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

자바스크립트에서 객체 배열을 정렬하는 방법은 여러 가지가 있습니다. 그 중에서도 객체의 특정 속성 값을 기준으로 정렬하는 방법을 알아보겠습니다.

1. sort() 메서드를 이용한 정렬

sort() 메서드는 배열을 정렬하는데 사용됩니다. 이 메서드는 기본적으로 배열의 각 요소를 문자열로 변환하여 정렬합니다. 하지만 객체 배열을 정렬할 때는 정렬 기준을 지정해야 합니다.

예를 들어, 다음과 같은 객체 배열이 있다고 가정해봅시다.

let users = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 30 },
  { name: 'Adam', age: 20 }
];

이 배열을 age 속성 값을 기준으로 오름차순으로 정렬하려면 다음과 같이 sort() 메서드를 사용할 수 있습니다.

users.sort((a, b) => a.age - b.age);

위의 코드를 실행하면 users 배열은 다음과 같이 정렬됩니다.

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

2. localeCompare() 메서드를 이용한 정렬

localeCompare() 메서드는 두 개의 문자열을 비교하여 정렬 순서를 결정할 수 있습니다. 이 메서드를 사용하여 객체 배열을 정렬할 때는 정렬 기준을 지정해야 합니다.

예를 들어, 다음과 같은 객체 배열이 있다고 가정해봅시다.

let products = [
  { name: 'Apple', price: 1000 },
  { name: 'Banana', price: 500 },
  { name: 'Orange', price: 700 }
];

이 배열을 name 속성 값을 기준으로 오름차순으로 정렬하려면 다음과 같이 localeCompare() 메서드를 사용할 수 있습니다.

products.sort((a, b) => a.name.localeCompare(b.name));

위의 코드를 실행하면 products 배열은 다음과 같이 정렬됩니다.

[
  { name: 'Apple', price: 1000 },
  { name: 'Banana', price: 500 },
  { name: 'Orange', price: 700 }
]

참고 자료