Trier un tableau d'objets JavaScript dans un ordre spécifique (à l'aide de la fonction existante)
Donné un tableau d'objets:
{ clé: "un", valeur: 42 }, { clé: "d", valeur: 28 }, { clé: "c", valeur: 92 }, { clé: "b", valeur: 87 }
et un tableau de clés:
["c", "a", "b", "d"]
Est-il un ECMAScript ou de la fonction de la 3e partie de la bibliothèque JavaScript qui permet de trier les - en ligne/de fonction d'appel - le premier tableau d'objets, de correspondre à l'ordre des touches spécifié dans le second tableau, telle que le résultat obtenu est:
{ clé: "c", valeur: 92 }, { clé: "un", valeur: 42 }, { clé: "b", valeur: 87 }, { clé: "d", valeur: 28 }
D'autres questions qui fournissent une fonction ou de l'algorithme:
- Javascript - trie un tableau en fonction d'une autre matrice - Débordement de Pile
- javascript - Comment puis-je trier un tableau d'objets en fonction de la commande d'un autre tableau? - Débordement De Pile
Similaire ou connexe questions:
source d'informationauteur mkopala
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser
indexOf
pour convertir la clé pour le bon ordre:Violon
Si il y a un grand nombre de touches, alors il serait avantageux de faire un hash-carte de la matrice, comme:
Cela rend la clé de tri, de recherche constante de temps plutôt que de O(n). (Violon)
Je ne peux pas prétendre que c'est la plus efficace, mais vous pouvez utiliser le
key
pour chaque objet comme un élément clé pour les propriétés d'un autre objet. Ensuite, il vous suffit d'accéder par ces touches.http://jsfiddle.net/WdehF/