JavaScript에는 배열을 정렬하는 매우 강력한 내장 기능이 있습니다. 기본적으로 정렬 방법은 요소를 알파벳순으로 정렬합니다. 예를 들어,
예시
let arr1 = ["Zebra", "Bear", "Tiger"]; arr1.sort(); console.log(arr1);
출력
이것은 출력을 줄 것입니다 -
[ 'Bear', 'Tiger', 'Zebra' ]
이제 int 예제를 살펴보겠습니다.
예시
let arr1 = [1, 8, 31, 21]; arr1.sort(); console.log(arr1);
출력
이것은 출력을 줄 것입니다 -
[ 1, 21, 31, 8 ]
이것은 우리가 예상한 것이 아닙니다. 이것은 기본적으로 정렬 방법이 요소를 알파벳순으로 정렬하기 때문에 출력되는 것입니다. 원하는 대로 정렬하려면 2개의 인수를 적용하여 더 큰 것과 더 작은 것을 결정하고 그에 따라 정렬하는 비교 기능을 제공해야 합니다. 따라서 정수 배열을 정렬하려면 −
를 호출해야 합니다.예시
let arr1 = [1, 8, 31, 21]; arr1.sort((a, b) => a - b); console.log(arr1);
출력
출력은 &,minus;
가 됩니다.[ 1, 8, 21, 31 ]
이것은 또한 객체 배열 정렬과 같은 더 복잡한 경우에 정렬하는 데 사용해야 하는 키를 제공하는 데 사용할 수 있습니다. 예를 들어,
예시
let people = [{
name: "Zoe",
age: 35
}, {
name: "Richard",
age: 21
}, {
name: "Agnes",
age: 25
}];
people.sort((a, b) => {
let nameA = a.name.toUpperCase(); // ignore upper and lowercase
let nameB = b.name.toUpperCase(); // ignore upper and lowercase
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
} // names must be equal
return 0;
}) console.log(people) 출력
이것은 출력을 줄 것입니다 -
[ { name: 'Agnes', age: 25 },
{ name: 'Richard', age: 21 },
{ name: 'Zoe', age: 35 } ] 훨씬 더 복잡한 개체도 이 방법으로 정렬할 수 있습니다. 비교 기능을 구성하는 방법에 관한 모든 것입니다.
이 함수가 배열을 제자리에 정렬하는 것을 보았듯이. 이 배열에서 동일한 순서를 유지하면서 새로운 정렬된 배열을 반환하려면 다음을 사용하여 먼저 복사본을 만든 다음 정렬을 적용할 수 있습니다.
출력
arr.slice(0).sort();