Maison > interface Web > js tutoriel > le corps du texte

Comment trier un tableau JavaScript multidimensionnel par plusieurs colonnes ?

DDD
Libérer: 2024-10-28 23:18:30
original
122 Les gens l'ont consulté

How to Sort a Multidimensional JavaScript Array by Multiple Columns?

Tri de tableaux multidimensionnels par plusieurs colonnes

En JavaScript, le tri d'un tableau de chaînes peut être facilement réalisé à l'aide de la fonction Array.sort() . Cependant, pour les tableaux multidimensionnels, ou lors d'un tri basé sur plusieurs critères, une fonction personnalisée est requise.

Considérons un tableau avec la structure suivante :

[publicationID][publication_name][ownderID][owner_name]
Copier après la connexion

Le but est de trier le tableau par nom_propriétaire, puis par nom_publication, ce qui entraînerait le regroupement des propriétaires portant le même nom et le tri des publications au sein de chaque groupe par ordre alphabétique.

Auparavant, une fonction de tri personnalisée nommée mysortfunction a été introduite, qui triait le tableau basé sur une seule colonne,owner_name. Pour étendre cette fonction au tri multicolonne, les modifications suivantes peuvent être apportées :

<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>
Copier après la connexion

Dans cette fonction mise à jour :

  • o1 et o2 représentent les noms des propriétaires en minuscules.
  • p1 et p2 représentent les noms des publications en minuscules.

Tout d'abord, il compare les noms des propriétaires. S'ils diffèrent, la fonction renvoie -1 ou 1 pour indiquer lequel doit précéder l'autre.

Cependant, si les noms des propriétaires sont identiques, la fonction procède à la comparaison des noms de publication. Dans ce cas, elle renvoie -1 ou 1 pour préciser leur ordre.

Si les deux comparaisons aboutissent à l'égalité, la fonction renvoie 0, indiquant que les deux éléments sont égaux et doivent conserver leur ordre d'origine.

En triant le tableau à l'aide de cette fonction personnalisée, l'objectif de tri par nom_propriétaire puis par nom_publication est atteint. Les propriétaires portant le même nom seront regroupés, les publications au sein de chaque groupe étant classées par ordre alphabétique.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!