sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 배열을 반환한다.
정렬은 stable sort 가 아닐 수 있다.
기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다.
stable sort 는 한국어로 안정 정렬 이라고 하며 동일한 값(키)을 가진 요소들의 순서가 정렬 후에도 변하지 않는 정렬 알고리즘을 말한다. 정렬되지 않은 상태에서 같은 키값을 가진 원소의 순서가 정렬 후에도 유지 여부에 따라 stable sort 와 unstable sort 로 나뉜다.
1. let numbers = [4, 2, 7, 1, 9, 3];
numbers.sort((a, b) => a - b); // 배열을 오름차순으로 정렬
console.log(numbers);
2. let people = [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
{ name: 'Eve', age: 35 }
];
people.sort((a, b) => a.age - b.age); // 나이 순으로 객체 배열 정렬
console.log(people);
1. [1, 2, 3, 4, 7, 9]
2. [
{ name: 'Bob', age: 25 },
{ name: 'Alice', age: 30 },
{ name: 'Eve', age: 35 }
]
sort() 는 복사본이 만들어지는 것이 아니라 원 배열을 정렬하기 때문에 원 배열이 바뀐다!!
slice() 메서드를 같이 사용하자!!
let numbers = [4, 2, 7, 1, 9, 3];
let sortedNumbers = numbers.slice().sort((a, b) => a - b);
console.log("원래 배열 :", numbers); // 원래 배열은 변하지 않음
console.log("복사된 정렬된 배열:", sortedNumbers);
원래 배열 : [4, 2, 7, 1, 9, 3]
복사된 정렬된 배열 : [1, 2, 3, 4, 7, 9]
https://developer.mozilla.org/ko/ 을 참고하여 포스팅을 만들었습니다.