[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 }
]