我已经搜查相当长一段时间的集合API(列表,集)的JS和令人惊讶的,我只能这样:http://www.coffeeblack.org/work/jscollections/JavaScript Collections API?
这正是我一直在寻找,但我不知道为什么不jQuery提供的?我在想什么?或者,也许,我的搜索技术有多无效?我知道数组支持弹出()和推(),但我需要包含()例如。
我已经搜查相当长一段时间的集合API(列表,集)的JS和令人惊讶的,我只能这样:http://www.coffeeblack.org/work/jscollections/JavaScript Collections API?
这正是我一直在寻找,但我不知道为什么不jQuery提供的?我在想什么?或者,也许,我的搜索技术有多无效?我知道数组支持弹出()和推(),但我需要包含()例如。
由于javascript有数组[]
和关联数组{}
,因此大多数数据结构的需求已经解决。该数组解决了有序列表,通过数字索引进行快速访问,而关联数组可以被视为无序哈希映射,并解决了字符串键的快速访问问题。
对我来说,涵盖了95%的数据结构需求。
你不能使用jquery集合插件。
jQuery的主要焦点是DOM。它不会也不应该试图将所有的东西都交给所有的人,所以它在收集支持方面没有太多的东西。
Google地图和Google套,我想耍赖点你在我自己的这些实现的方向:http://code.google.com/p/jshashtable/
关于名单,Array
提供了很多的你所需要的。最喜欢的方法,你可能要为阵列,您可以在几行拼凑一个方法(其中大部分是对付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
你可以试试js_cols,这是一个JavaScript的集合库。
你也可以尝试buckets,它有最常用的集合。
如果你有空闲时间可以结账。 https://github.com/somnathpanja/jscollection
仅供参考 - coffeeblack集合库对我来说是一个不行,因为它为javascript对象类型的原型添加了属性。这打破了一些基本的jQuery功能,如$ .css(地图) – 2011-02-16 04:00:41
还有https://github.com/kriskowal/collections – Luis 2012-08-19 01:31:23