我已經搜查相當長一段時間的集合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