Array.sort() 함수로 객체 배열도 정렬시킬 수 있다.
예를 들어, 아래의 객체 배열을 정렬하겠다.
[
{
id : 0,
title : "White and Black",
price : 120000
},
{
id : 1,
title : "Red Knit",
price : 110000
},
{
id : 2,
title : "Grey Yordan",
price : 130000
}
]
title 을 기준으로
가나다 순으로
객체를 정렬할 것이다.
sort() 안에 함수를 넣으면 된다.
원래 Array.sort()는
문자열 배열을 정렬하는 기능이지만
매개변수에 함수를 넣으면 객체 배열도 정렬 가능하다.
매개변수에 어떤 함수를 넣어야되는지 위 사진 참고.
array.sort(
function(a, b){
if(a.title.toLowerCase() > b.title.toLowerCase())
return 1;
else if(a.title.toLowerCase() < b.title.toLowerCase())
return -1;
else
return 0;
});
위 사진을 참고했을 때
이렇게 구현하면 된다.
임의의 비교 대상 a, b 에 대하여
정렬 기준을 함수로 제공한 것이다.
※ toLowerCase()
는 문자열을 소문자로 만드는 기능이다.