Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

자바스크립트에서 배열 요소 정렬하기


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