JavaScript Collections API?

sim*_*ico 8 javascript collections list

我已经搜索了很长一段时间来获取JS的Collections API(列表,设置),令人惊讶的是我只能这样:http://www.coffeeblack.org/work/jscollections/

这正是我想要的,但我想知道jQuery为什么不提供呢?我错过了什么?或者,也许,我的搜索技巧有多么无效?

我知道数组支持pop()和push(),但我需要contains().

小智 6

您可以尝试js_cols,一个JavaScript的集合库.


Aim*_*Kai 5

你不能使用jquery集合插件.

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


Tim*_*own 5

jQuery的主要焦点是DOM.它不会也不应该试图成为所有人的所有事物,因此它对集合支持的方式没有多少.

对于地图和集合,我想无耻地指出你自己实现这些的方向:http://code.google.com/p/jshashtable/

关于列表,Array提供了您需要的大部分内容.像你可能想要的大多数方法一样,你可以将一个contains()方法组合在一起(大多数方法是处理IE <= 8缺乏对indexOf()方法的支持):

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
Run Code Online (Sandbox Code Playgroud)


Mar*_*ten 1

由于 javascript 同时具有数组[]和关联数组{},因此对数据结构的大多数需求已经得到解决。数组解决了有序列表,通过数字索引的快速访问,而关联数组可以认为是无序的 hashmap,解决了通过字符串键的快速访问。

对我来说,这满足了我 95% 的数据结构需求。