sim*_*ico 8 javascript collections list
我已经搜索了很长一段时间来获取JS的Collections API(列表,设置),令人惊讶的是我只能这样:http://www.coffeeblack.org/work/jscollections/
这正是我想要的,但我想知道jQuery为什么不提供呢?我错过了什么?或者,也许,我的搜索技巧有多么无效?
我知道数组支持pop()和push(),但我需要contains().
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)
由于 javascript 同时具有数组[]和关联数组{},因此对数据结构的大多数需求已经得到解决。数组解决了有序列表,通过数字索引的快速访问,而关联数组可以认为是无序的 hashmap,解决了通过字符串键的快速访问。
对我来说,这满足了我 95% 的数据结构需求。
| 归档时间: |
|
| 查看次数: |
8971 次 |
| 最近记录: |