Maison >interface Web >js tutoriel >Comment trier un tableau JavaScript en fonction de l'ordre d'un autre tableau sans utiliser d'identifiants ?

Comment trier un tableau JavaScript en fonction de l'ordre d'un autre tableau sans utiliser d'identifiants ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-12 11:46:131014parcourir

How to Sort a JavaScript Array Based on Another Array's Order Without Using IDs?

Trier un tableau JavaScript en fonction de l'ordre d'un autre tableau sans identifiants

Considérez le scénario suivant : vous disposez de deux tableaux, itemsArray et sortingArr. itemsArray contient des paires nom-lettre, comme ['Anne', 'a'], tandis que sortingArr spécifie l'ordre des lettres souhaité, par exemple, ['b', 'c', 'b', 'b', 'a', 'd'].

Le but est de réorganiser itemsArray pour que son ordre corresponde autant que possible à celui de sortingArr, malgré l'absence d'unicité identifiants.

Un moyen élégant et efficace d'y parvenir consiste à utiliser la méthode de tri :

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});

Dans cet extrait, la méthode de tri utilise une fonction de comparaison personnalisée pour comparer chaque élément dans itemsArray. La fonction renvoie la différence entre l'index de l'élément actuel dans sortingArr et l'index de l'autre élément. Cette comparaison garantit que les éléments portant la même lettre sont regroupés et classés selon sortingArr.

Le itemsArray de sortie sera réorganisé comme suit :

[
  ["Bob", "b"],
  ["Jason", "c"],
  ["Henry", "b"],
  ["Thomas", "b"]
  ["Anne", "a"],
  ["Andrew", "d"],
]

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