J'ai recherché un moment pour une API de collections (liste, ensemble) pour JS et étonnamment, je ne pouvais que cela: http http : //www.coffeeblack.org/work/jscollections/ p>
C'est exactement ce que je cherchais, mais je me demande pourquoi JQuery ne prévoit pas ça? Qu'est-ce que je manque? Ou peut-être, à quel point mes techniques de recherche sont-elles inefficaces? P>
Je sais que les tableaux de support POP () et poussent (), mais j'ai besoin de contenant () par exemple. P>
6 Réponses :
Étant donné que JavaScript dispose des deux tableaux pour moi qui couvre 95% de mes besoins de structure de données. P> [] code> et des tableaux associatifs
{} code>, la plupart des besoins pour les crécances sont déjà résolus. Le tableau résout la liste ordonnée, accès rapide à l'index numérique tandis que le tableau associatif peut être considéré comme un hashmap non ordonné et résout l'accès rapide par les touches de chaîne. p>
Et qu'en est-il de contient (x)? Autre qu'une boucle que faites-vous?
Si la contient est la meilleure façon d'accès, j'utiliserais un tableau associatif. Si j'ai besoin de la liste ordonnée et i> contient pour de très grands ensembles de données, j'utiliserais à la fois un tableau et une matrice associative avec les mêmes données.
Pour les petits jeux de données, je bouclerais sur la matrice.
essayer de factoriser le code de boucle. Les tableaux associatifs ne suffisent pas et comment puis-je parcourir les éléments une fois que je ne connais pas les valeurs?
Vous ne pouvez pas utiliser le plug-in jQuery Collection. P>
L'objectif principal de JQuery est le DOM. Ce n'est pas et ne devrait pas essayer d'être tout ce qui concerne toutes les personnes, donc cela n'a pas beaucoup dans la voie des collections.
Pour les cartes et les ensembles, je voudrais vous diriger sans vergogner dans la direction de mes propres implémentations de ceux-ci: http://code.google.com/p/jshashable/ p>
Concernant les listes, Array code> offre une grande partie de ce dont vous avez besoin. Comme la plupart des méthodes que vous souhaiteriez peut-être pour les tableaux, vous pouvez assembler un
contenant () code> méthode dans quelques lignes (dont la plupart doivent traiter avec IE <= 8 Manque de support pour la
() code> méthode): p>
Si vous obtenez du temps libre, vous pouvez vérifier. https://github.com/somnatpanja/jscollection P>
FYI - La bibliothèque de CoffeeBlack Collections était nulle part pour moi, car elle ajoute des propriétés au prototype du type d'objet JavaScript. Cela casse une fonctionnalité de base jQuery comme $ .css (carte)
Il y a aussi github.com/kriskowal/collections