arr.sort([compareFunction]);
파라미터
**compareFunction** - 이 값이 생력되면, 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬된다. - 이 함수는 두 개의 배열 element를 파라미터로 입력 받는다. - 이 함수가 a,b 두 개의 element를 파라미터로 입력받을 경우, - 리턴값이 **0보다 작을 경우**, a가 b보다 앞에 오도록 정렬. - 리턴값이 **0보다 클 경우**, b가 a보다 앞에 오도록 정렬한다. - 만약 리턴값이 0이라면 a와 b의 순서를 변경하지 않는다.예제)
const arr1 = [2, 1, 3];
const arr2 = arr1.sort();
//
console.log(arr1); // [1,2,3]
console.log(arr2); // [1,2,3]
arr1.push(4);
console.log(arr1); // [1,2,3,4]
console.log(arr2); // [1,2,3,4]
sort() 함수는 원본배열을 정렬하고 원본 배열을 가리키는 배열을 리턴한다.
const arr = ['banana', 'b', 'Boy'];
arr.sort(function(a, b) {
const upperCaseA = a.toUpperCase();
const upperCaseB = b.toUpperCase();
if(upperCaseA < upperCaseB) return 1; // ASCII 값을 비교한다.
if(upperCaseA > upperCaseB) return -1;
if(upperCaseA === upperCaseB) return 0;
});
console.log(arr[0]); // Boy,banana,b
const arr = [
{name: 'banana', price: 3000},
{name: 'apple', price: 1000},
{name: 'orange', price: 500}
];
arr.sort(function(a, b) {
return a.price - b.price; // price 기준으로 오름차순 정렬한다.
});
console.log(arr[0]); // {"name":"orange","price":500}
console.log(arr[1]); // {"name":"apple","price":1000}
console.log(arr[2]); // {"name":"banana","price":3000}