오름차순 정렬
const numbers = [5, 2, 1, 4, 3];
numbers.sort((a, b) => a - b);
console.log(numbers);
내림차순 정렬
const numbers = [5, 2, 1, 4, 3];
numbers.sort((a, b) => b - a);
console.log(numbers);
객체 배열의 속성 값으로 정렬
const students = [ { name: 'Alice', score: 80 }, { name: 'Bob', score: 90 }, { name: 'Charlie', score: 70 },];
students.sort((a, b) => b.score - a.score);
console.log(students);
객체 배열의 여러 속성으로 정렬
const students = [ { name: 'Alice', score: 80, grade: 'B' }, { name: 'Bob', score: 90, grade: 'A' }, { name: 'Charlie', score: 70, grade: 'C' },];
students.sort((a, b) => {
if (a.grade < b.grade) return -1;
if (a.grade > b.grade) return 1;
return b.score - a.score;
});
console.log(students);
객체 배열의 속성 값에 따라 정렬 방식 변경
const students = [ { name: 'Alice', score: 80, grade: 'B' }, { name: 'Bob', score: 90, grade: 'A' }, { name: 'Charlie', score: 70, grade: 'C' },];
const sortOptions = {
score: (a, b) => b.score - a.score,
grade: (a, b) => a.grade.localeCompare(b.grade),
};
students.sort((a, b) => {
for (const [key, sortFn] of Object.entries(sortOptions)) {
if (a[key] !== b[key]) {
return sortFn(a, b);
}
}
return 0;
});
console.log(students);