sei*_*cle 3 javascript jquery jquery-plugins guava data-structures
来自Java我非常喜欢Guava提供的丰富数据结构集合所提供的灵活性.在js或jquery中是否有"类似番石榴"的库?
注意:我听说关闭,看起来有点沉重 - 更简单?(或者真正关闭我需要的东西吗?)
注2:通过"丰富的数据结构集合",我的意思是排序的地图和集合,多图(允许重复的密钥)和多重集(允许多个条目的集合 - 看起来很奇怪,但实际上非常有用!)等.
如果通过JS的"丰富的数据结构集合"来表示使用JavaScript Array和Objects以及JavaScript本身的实用程序,那么我建议使用Underscore.js:
Underscore是一个用于JavaScript的实用程序带库,它提供了许多函数式编程支持.(...)下划线提供了支持常用的功能性犯罪嫌疑人60余功能:
map,select,invoke-以及更专业的帮手:功能结合,JavaScript的模板,深平等的测试,等等.它委托给内置函数,如果存在的话,那么现代的浏览器将使用的本地实现forEach,map,reduce,filter,every,some和indexOf.
它还具有类似Set的函数,如union,intersection和difference类型检查函数isXXX(isArray等),函数好东西和你自己编写的更多东西,没有这样的库.
Underscore有干净的代码,经过充分测试并且非常流行,我每天都在JS项目中使用它.
编辑问题编辑后:
我知道Guava有multimaps,multiset等,但它们都是Java设计的后果,很难在JS中编写这些集合的1对1实现.这是因为Javascript 没有:
var t1 = { test: 1 }, t2 = { test: 1 }; t1 === t2是false)因此很难编写通用的Set实现,而不是提及Multiset或Multimap.例如一些Set实现,如Closure的一个或这个,但它们并不完美 - 首先修改插入Set(!)的元素,第二个不是主流的,经过良好测试的项目(我个人从未使用过它)所以不能多说).
在Javascript中你只是做var multimap = { key: [ 1, 2, 3.0 ], key2: [ 4, 'test', { bla: null }, 1 ] },因为语言设计你不能只做multimap.containsValue({ bla: null }).我提到了underscore.js,因为它具有95%的实用功能,你将使用JS集合,即数组和对象.如果你想要更多,只需使用Closure的结构,但库本身就很大了.
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |