배열에 sort()를 사용하면 배열이 정렬되고 그 배열이 반환된다.
sort()의 인수로 compare function이 있을 수 있는데 전달하지 않으면 원소를 문자열로 변환하고 유니코드 코드 포인트 순서로 문자열을 비교해서 정렬한다.
let arr = [0, 99, 100, 3, 4, 5, 6];
arr.sort(); // [0, 100, 3, 4, 5, 6, 99]
arr.sort((a,b)=>{if(a<b)return -1; else if(a>b) return 1; return 0;}) // [0, 3, 4, 5, 6, 99, 100]
arr.sort((a,b)=>{return a-b;}) // [0, 3, 4, 5, 6, 99, 100]
arr.sort((a,b)=>{return b-a;}) // [100, 99, 6, 5, 4, 3, 0]
list of object인 경우 object의 속성을 기준으로 정렬
var items = [
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'The', value: -12 },
{ name: 'Magnetic', value: 13 },
{ name: 'Zeros', value: 37 }
];
// value 기준으로 정렬
items.sort(function (a, b) {
if (a.value > b.value) {
return 1;
}
if (a.value < b.value) {
return -1;
}
// a must be equal to b
return 0;
});
// name 기준으로 정렬
items.sort(function(a, b) {
var nameA = a.name.toUpperCase(); // ignore upper and lowercase
var nameB = b.name.toUpperCase(); // ignore upper and lowercase
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
// 이름이 같을 경우
return 0;
});
https://developer.mozilla.org/ko/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/sort