Maison >interface Web >js tutoriel >Comment trier un tableau multidimensionnel par plusieurs colonnes en JavaScript ?

Comment trier un tableau multidimensionnel par plusieurs colonnes en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 20:21:29304parcourir

How to Sort a Multidimensional Array by Multiple Columns in JavaScript?

Tri d'un tableau par plusieurs colonnes en JavaScript

Le tri d'un tableau multidimensionnel basé sur plusieurs colonnes nécessite une fonction de tri personnalisée. Pour un tableau principal composé de "publicationIDownderID", l'objectif est de trier d'abord par nom_propriétaire, puis par nom_publication.

La fonction de tri existante fournie, "mysortfunction", est limitée au tri uniquement par nom_propriétaire. Pour remédier à cette limitation, la fonction doit être modifiée pour prendre en compte à la fois le nom_propriétaire et le nom_publication :

<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>

Cette fonction modifiée donne désormais la priorité au tri par nom_propriétaire. Si les noms des propriétaires sont identiques, il utilise publication_name comme critère de départage pour le tri.

La "mysortfunction" mise à jour peut désormais être utilisée conjointement avec Array.sort() pour obtenir le tri multi-colonnes souhaité :

<code class="javascript">array.sort(mysortfunction);</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn