...
자바스크립트 객체 배열 정렬
배열의 객체 요소들을 정렬하기 위해서는 객체 내의 속성을 키(key)로서 잡고 기준으로 정렬할지를 지정해야 한다.
const user = [
{ name: '홍길동', age: 40 },
{ name: '임꺽정', age: 12 },
{ name: '주몽', age: 23 },
{ name: '척준경', age: 88 },
];
다음 user 라는 객체 배열을 정렬할 것인데, 각 원소의 객체 속성들을 보면 age 라는 넘버 값과 name이라는 스트링값이 있다.
이 age 와 name 속성을 기준으로 각각 나이순, 이름순으로 객체들을 정렬할 수 가 있다.
// 나이순 오름차순
const result1 = user.sort((a, b) => a.age - b.age);
console.log('result1: ', result1);
/*
{ name: '임꺽정', age: 12 },
{ name: '주몽', age: 23 },
{ name: '홍길동', age: 40 },
{ name: '척준경', age: 88 }
*/
// 나이순 내림차순
const result2 = user.sort((a, b) => b.age - a.age);
console.log('result2: ', result2);
/*
{ name: '척준경', age: 88 },
{ name: '홍길동', age: 40 },
{ name: '주몽', age: 23 },
{ name: '임꺽정', age: 12 }
*/
// 이름순 오름차순
const result1 = user.sort((a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1);
console.log('result1: ', result1);
/*
{ name: '임꺽정', age: 12 },
{ name: '주몽', age: 23 },
{ name: '척준경', age: 88 },
{ name: '홍길동', age: 40 }
*/
// 이름순 내림차순
const result2 = user.sort((a, b) => a.name.toLowerCase() > b.name.toLowerCase() ? -1 : 1);
console.log('result2: ', result2);
/*
{ name: '홍길동', age: 40 },
{ name: '척준경', age: 88 },
{ name: '주몽', age: 23 },
{ name: '임꺽정', age: 12 }
*/
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.