simpatico
simpatico

Reputation: 11107

JavaScript Collections API?

I've searched quite a while for a Collections API (list, set) for JS and surprisingly I could only this: http://www.coffeeblack.org/work/jscollections/

This is exactly what I was looking for, but I'm wondering why doesn't jQuery provide that? What am I missing on? Or, perhaps, how ineffective are my searching techniques?

I know that arrays support pop() and push(), but I need contains() for example.

Upvotes: 8

Views: 9567

Answers (6)

Somnath
Somnath

Reputation: 3277

If you get some free time you can checkout. https://github.com/somnathpanja/jscollection

Upvotes: 0

Daniel
Daniel

Reputation: 331

You can also try buckets, it has the most used collections.

Upvotes: 4

Thomas
Thomas

Reputation: 81

You can try js_cols, a collections library for JavaScript.

Upvotes: 6

Tim Down
Tim Down

Reputation: 324627

jQuery's primary focus is the DOM. It doesn't and shouldn't try and be all things to all people, so it doesn't have much in the way of collections support.

For maps and sets, I'd like to shamelessly point you in the direction of my own implementations of these: http://code.google.com/p/jshashtable/

Regarding lists, Array provides much of what you need. Like most methods you might want for arrays, you can knock together a contains() method in a few lines (most of which are to deal with IE <= 8's lack of support for the indexOf() method):

Array.prototype.contains = Array.prototype.indexOf ?
    function(val) {
        return this.indexOf(val) > -1;
    } :
    function(val) {
        var i = this.length;
        while (i--) {
            if (this[i] === val) {
                return true;
            }
        }
        return false;
    };

["a", "b", "c"].contains("a"); // true

Upvotes: 5

Aim Kai
Aim Kai

Reputation: 2919

Can't you use the jquery collection plugin.

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

Upvotes: 5

Martin Algesten
Martin Algesten

Reputation: 13620

Since javascript have both arrays [] and associative arrays {}, most needs for datstructures are already solved. The array solves the ordered list, fast access by numeric index whilst the associative array can be considered a unordered hashmap and solves the fast access by string keys.

For me that covers 95% of my data structure needs.

Upvotes: 1

Related Questions