새소식

FE/JavaScript

[Javascript] 객체로 구성된 배열 정렬하기

  • -

자바스크립트에서 하나의 배열 안에 여러개의 객체를 담아서 관리하는 경우가 종종 있다. 이 때, 배열 내부의 객체 요소들을 정렬하기 위해서는 어떻게 해야할까?

 

배열 내부의 객체 요소들을 정렬하는 기준은 객체의 특정 속성일 수 있다.

 

 

user 객체배열 정렬하기

const user = [ { name: '장원영', age: 21 }, { name: '안유진', age: 25 }, { name: '설윤', age: 34 }, { name: '민지', age: 88 }, ];

 

위와 같이, user라는 객체 배열을 정렬한다고 가정하자. 각 원소의 속성들을 보면 age라는 숫자값과 name이라는 스트링값이 있다.

이 age와 name속성을 기준으로 각각 나이순, 이름순으로 객체들을 정렬할 수 있다.

 

나이순 정렬

//나이순 오름차순 const result1 = user.sort((a,b)=> a.age-b.age); console.log("result1:",result1) /* result1: [ { name: '장원영', age: 21 }, { name: '안유진', age: 25 }, { name: '설윤', age: 34 }, { name: '민지', age: 88 } ] */ //나이순 내림차순 const result2 = user.sort((a,b)=> b.age-a.age); console.log("result2:",result2) /* result2: [ { name: '민지', age: 88 }, { name: '설윤', age: 34 }, { name: '안유진', age: 25 }, { name: '장원영', age: 21 } ] */

 

 

 

이름순 정렬

// 이름순 오름차순 const result1 = user.sort((a,b)=> a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1) console.log("result1",result1) /* result1 [ { name: '민지', age: 88 }, { name: '설윤', age: 34 }, { name: '안유진', age: 25 }, { name: '장원영', age: 21 } ] */ // 이름순 내림차순 const result2 = user.sort((a,b)=> a.name.toLowerCase() > b.name.toLowerCase() ? -1 : 1) console.log("result2",result2) /* result2 [ { name: '장원영', age: 21 }, { name: '안유진', age: 25 }, { name: '설윤', age: 34 }, { name: '민지', age: 88 } ] */

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.