Maison  >  Article  >  interface Web  >  Comment trier un tableau multicolonne en JavaScript par propriétaire et nom de publication ?

Comment trier un tableau multicolonne en JavaScript par propriétaire et nom de publication ?

DDD
DDDoriginal
2024-11-01 01:29:28495parcourir

How to Sort a Multi-Column Array in JavaScript by Owner and Publication Name?

Tri personnalisé de tableaux multicolonnes en JavaScript

Le tri de tableaux basés sur plusieurs colonnes est une tâche courante en programmation. Cette question explore comment y parvenir en JavaScript pour une structure de tableau spécifique.

Le tableau en question est un tableau multidimensionnel avec la structure suivante :

[publicationID][publication_name][ownderID][owner_name]

Le but est de trier le tableau d'abord par nom_propriétaire, puis par nom_publication.

Pour trier sur plusieurs colonnes, la fonction de tri personnalisée doit prendre en compte les deux critères. Le code suivant montre comment modifier la fonction mysort fournie pour obtenir le résultat souhaité :

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

Dans cette fonction :

  • o1 et o2 sont convertis en minuscules pour une comparaison insensible à la casse. de nom_propriétaire.
  • p1 et p2 sont convertis en minuscules pour une comparaison insensible à la casse de nom_publication.
  • Si les valeurs de nom_propriétaire sont différentes, la fonction trie en fonction d'elles.
  • Si les valeurs de nom_propriétaire sont les mêmes, la fonction utilise le nom_publication pour départager.

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