js library to support various data structures? (like guava in java)
来自Java的我非常喜欢由番石榴所提供的丰富的数据结构集合所提供的灵活性。JS或JQuery中是否有类似于"guava"的库?
注意:我听说了闭幕式,看起来有点重——有什么简单的吗?(还是说我真的需要关闭?)
注2:"丰富的数据结构集合"是指经过排序的地图和集合、多重地图(允许重复的键)和多重集合(允许多个条目的集合-看起来很奇怪,但实际上非常有用!)等。
现在有一种更轻、更快的下划线替代品:lo dash(http://lodash.com/)。
如果说JS的"丰富的数据结构集合"是指在javascript
Underscore is a utility-belt library for JavaScript that provides a
lot of the functional programming support. (...) Underscore provides
60-odd functions that support both the usual functional suspects:map ,
select ,invoke — as well as more specialized helpers: function
binding, javascript templating, deep equality testing, and so on. It
delegates to built-in functions, if present, so modern browsers will
use the native implementations offorEach ,map ,reduce ,filter ,every ,
some andindexOf .
它还设置了类似于
下划线有干净的代码,经过良好的测试,最近非常流行,我每天都在JS项目中使用它。
问题编辑后编辑:
我知道番石榴有MultuMaPS、MultSub等,但是它们都是Java设计的结果,很难在JS中编写1到1的这些集合的实现。因为javascript没有:
- 静态分型,
- Java意义下的类使用原型代替(参见此答案),
- 接口(但另一方面具有作为一流对象的功能)
- 容易定义的对象相等(
var t1 = { test: 1 }, t2 = { test: 1 }; t1 === t2 是false )
所以很难编写通用的使用集实现,更不用说multiset或multimap了。例如,有一些集合实现,如闭包的一个或这个集合实现,但它们并不完美-首先修改插入集合中的元素!!)第二个不是一个主流的、经过良好测试的项目(我个人从未使用过它,所以不能说更多)。
在JavaScript中,您只需执行