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();