여러 열로 다차원 JavaScript 배열을 정렬하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-28 23:18:30
원래의
183명이 탐색했습니다.

How to Sort a Multidimensional JavaScript Array by Multiple Columns?

여러 열로 다차원 배열 정렬

JavaScript에서는 Array.sort() 함수를 사용하여 문자열 배열을 쉽게 정렬할 수 있습니다. . 그러나 다차원 배열의 경우 또는 여러 기준에 따라 정렬하는 경우 사용자 지정 함수가 필요합니다.

다음 구조의 배열을 고려하세요.

[publicationID][publication_name][ownderID][owner_name]
로그인 후 복사

목표는 배열을 정렬하는 것입니다. owner_name을 기준으로 한 다음 Publication_name을 기준으로 합니다. 그러면 동일한 이름을 가진 소유자가 함께 그룹화되고 각 그룹 내의 출판물이 알파벳순으로 정렬됩니다.

이전에 mysortfunction이라는 사용자 정의 정렬 함수가 도입되어 배열을 정렬했습니다. 단일 열인 owner_name을 기반으로 합니다. 다중 열 정렬을 위해 이 기능을 확장하려면 다음과 같이 수정하면 됩니다.

<code class="javascript">function mysortfunction(a, b) {

  var o1 = a[3].toLowerCase();
  var o2 = b[3].toLowerCase();

  var p1 = a[1].toLowerCase();
  var p2 = b[1].toLowerCase();

  if (o1 < o2) return -1;
  if (o1 > o2) return 1;
  if (p1 < p2) return -1;
  if (p1 > p2) return 1;
  return 0;
}</code>
로그인 후 복사

이 업데이트된 함수에서:

  • o1 및 o2는 소유자 이름을 소문자로 나타냅니다.
  • p1과 p2는 출판물 이름을 소문자로 나타냅니다.

먼저 소유자 이름을 비교합니다. 서로 다른 경우 함수는 -1 또는 1을 반환하여 어느 것이 다른 것보다 앞에야 하는지를 나타냅니다.

그러나 소유자 이름이 동일하면 함수는 출판물 이름을 비교합니다. 이 경우 순서를 지정하기 위해 -1 또는 1을 반환합니다.

두 비교 결과가 동일하면 함수는 0을 반환하여 두 요소가 동일하며 원래 순서를 유지해야 함을 나타냅니다.

이 사용자 정의 함수를 사용하여 배열을 정렬하면 owner_name을 기준으로 정렬한 다음 Publication_name을 기준으로 정렬하려는 목표가 달성됩니다. 동일한 이름을 가진 소유자는 함께 그룹화되며 각 그룹 내의 출판물은 알파벳순으로 나열됩니다.

위 내용은 여러 열로 다차원 JavaScript 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿