Regrouper les éléments du tableau en fonction de la variable javascript
J'ai un tableau qui est créé dynamique à partir d'un document xml à la recherche de quelque chose comme ceci:
myArray[0] = [1,The Melting Pot,A]
myArray[1] = [5,Mama's MexicanKitchen,C]
myArray[2] = [6,Wingdome,D]
myArray[3] = [7,Piroshky Piroshky,D]
myArray[4] = [4,Crab Pot,F]
myArray[5] = [2,Ipanema Grill,G]
myArray[6] = [0,Pan Africa Market,Z]
Ce tableau est créé à l'intérieur d'une boucle for et peut contenir n'importe quoi basé sur le xml document
Ce dont j'ai besoin pour accomplir, c'est le regroupement des éléments de cet ensemble basée sur les lettres de sorte que tous les objets d'ensemble qui ont la lettre A en eux stockés dans un autre tableau que ce
other['A'] = ['item 1', 'item 2', 'item 3'];
other['B'] = ['item 4', 'item 5'];
other['C'] = ['item 6'];
De préciser j'ai besoin de trier les éléments en fonction des variables à partir de l'intérieur de la matrice, dans ce cas, les lettres de sorte que tous les objets tableau contenant la lettre A, va en vertu de la nouvelle matrice par lettre
Merci pour toute aide!
source d'informationauteur Tobias
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas utiliser des tableaux avec des non-index entiers. Votre
other
variable doit être un objet ordinaire plutôt qu'un tableau. (Il ne fonctionne pas avec les tableaux, mais c'est pas la meilleure option.)Donné un élément dans
myArray
[1,"Le Melting Pot",""], votre exemple n'est pas clair si vous souhaitez stocker tout ça dansother
ou tout simplement la chaîne de caractères dans le second tableau de la position de votre sortie d'exemple uniquement a des cordes, mais ils ne correspondent pas à vos chaînes dansmyArray
. Mon code stockés à l'origine juste la partie de chaîne en disantother[letter].push(myArray[i][1]);
mais certaines personne anonyme a édité mon post pour le modifier àother[letter].push(myArray[i]);
qui stocke tous [1,"Le Melting Pot","A"]. À vous de déterminer ce que vous voulez faire là, que je vous ai donné le code de base dont vous avez besoin.Essayer groupBy fonction offerte par http://underscorejs.org/#groupBy
Vous devez créer un vide d'objet JavaScript et affecter un tableau avec pour chaque lettre.
Démo violon ici.
Ce code va travailler pour votre
example
.Good ol' ES5 Tableau Extras sont grands.
Essayez -