Maison >interface Web >js tutoriel >Comment trier un tableau bidimensionnel par valeur de colonne en JavaScript ?

Comment trier un tableau bidimensionnel par valeur de colonne en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-17 04:22:03181parcourir

How Can You Sort a Two-Dimensional Array by Column Value in JavaScript?

Tri des tableaux bidimensionnels par valeurs de colonne en JavaScript

Dans cet article, nous explorerons comment trier un tableau bidimensionnel dans JavaScript par une valeur de colonne spécifique.

Problème Déclaration

Étant donné un tableau bidimensionnel représenté comme un tableau de tableaux, chaque sous-tableau contenant deux éléments, la tâche consiste à trier le tableau par ordre croissant en fonction des valeurs de la première colonne ( colonne avec l'index 0).

Solution

JavaScript fournit une méthode pratique, sort(), qui peut être utilisé pour trier des tableaux multidimensionnels. Décomposons le code fourni :

var a = [[12, 'AAA'], [58, 'BBB'], [28, 'CCC'],[18, 'DDD']];

a.sort(sortFunction);

function sortFunction(a, b) {
    if (a[0] === b[0]) {
        return 0;
    }
    else {
        return (a[0] < b[0]) ? -1 : 1;
    }
}

Explication

  • La méthode sort() est invoquée sur le tableau a.
  • La sortFunction est passée en argument à la méthode sort(). Cette fonction compare les premiers éléments de deux sous-tableaux (a[0] et b[0]) et renvoie :

    • 0 s'ils sont égaux.
    • -1 si a[ 0] est inférieur à b[0].
    • 1 si a[0] est supérieur à b[0].

Par défaut, sort() utilise les valeurs renvoyées pour déterminer l'ordre des sous-tableaux, en les triant par ordre croissant.

Tri par deuxième colonne

Pour trier par la deuxième colonne, la fonction sortFunction peut être modifiée pour comparer la deuxième colonne valeurs :

a.sort(compareSecondColumn);

function compareSecondColumn(a, b) {
    if (a[1] === b[1]) {
        return 0;
    }
    else {
        return (a[1] < b[1]) ? -1 : 1;
    }
}

Cela permet une flexibilité dans le tri selon différentes colonnes en fonction des exigences spécifiques.

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