배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다.
각 요소의 유니코드 값에 따라 자동으로 정렬되며 (기본 오름차순) 원본 배열이 변경된다.
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months); //["Dec", "Feb", "Jan", "March"]
const arr = [1, 30, 4, 21, 100000];
arr.sort();
console.log(arr); //[1, 100000, 21, 30, 4]
숫자는 askii code값을 기준으로 정렬하기 때문에 제대로 정렬되지 않는다.
다음과 같은 코드로 오름차순과 내림차순 정렬을 구현할 수 있다.
const arr = [1, 30, 4, 21, 100000];
//오름차순
arr.sort( (a, b) => a - b);
//내림차순
arr.sort( (a, b) => b - a);
object도 각각의 속성을 기준으로 정렬할 수 있다.
let fruits = [
{ name: "apple", price: 2100 },
{ name: "orange", price: 2500 },
{ name: "strawberry", price: 1900 },
{ name: "banana", price: 2000 },
{ name: "grape", price: 2600 }
];
//price를 기준으로
fruits.sort( (a, b) => (a.price - b.price));
//name을 기준으로
fruits.sort( (a, b) => (a.name > b.name ? 1 : -1));
기준 문자열이 정렬상 string 객체의 문자열 뒤에 있으면 음수, 기준 문자열이 앞에 있는 경우는 양수, 같은 경우에는 0을 반환한다.
let str = "javascript";
//apple은 javascript보다 사전상 앞쪽에 있다.
str.localeCompare("apple"); //1
//key은 javascript보다는 사전상 뒤쪽에 있다.
str.localeCompare("key"); //-1
str.localeCompare("javascript"); //0