8
votes

JavaScript Collections API?

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/

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?

Je sais que les tableaux de support POP () et poussent (), mais j'ai besoin de contenant () par exemple.


2 commentaires

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


6 Réponses :


1
votes

Étant donné que JavaScript dispose des deux tableaux [] et des tableaux associatifs {} , 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.

pour moi qui couvre 95% de mes besoins de structure de données.


4 commentaires

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 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?



5
votes

Vous ne pouvez pas utiliser le plug-in jQuery Collection.

http://plugins.jquery.com/project/collection


0 commentaires

5
votes

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/

Concernant les listes, Array 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 () méthode dans quelques lignes (dont la plupart doivent traiter avec IE <= 8 Manque de support pour la () méthode): xxx


0 commentaires

6
votes

Vous pouvez essayer JS_COLS , une bibliothèque de collections pour JavaScript.


0 commentaires

4
votes

Vous pouvez également essayer godets , il a les collections les plus utilisées.


0 commentaires

0
votes

Si vous obtenez du temps libre, vous pouvez vérifier. https://github.com/somnatpanja/jscollection


0 commentaires