Javascript js库是否支持各种数据结构?(就像爪哇的番石榴)

Javascript js库是否支持各种数据结构?(就像爪哇的番石榴),javascript,jquery,jquery-plugins,data-structures,guava,Javascript,Jquery,Jquery Plugins,Data Structures,Guava,来自Java,我非常喜欢Guava提供的丰富数据结构集合所提供的灵活性。js或jquery中是否有“类似番石榴”的库 注意:我听说了闭包,它看起来有点重-有更简单的吗?(或者我真的需要结束吗?) 注2:所谓“丰富的数据结构集合”,我指的是分类的地图和集合、多重地图(允许重复键)和多重集合(允许有多个条目的集合-看起来很奇怪,但实际上非常有用!),等等。如果说“丰富的数据结构集合”对于JS,您指的是在JavaScriptArrays和Objects以及JavaScript本身上操作的实用程序,那么

来自Java,我非常喜欢Guava提供的丰富数据结构集合所提供的灵活性。js或jquery中是否有“类似番石榴”的库

注意:我听说了闭包,它看起来有点重-有更简单的吗?(或者我真的需要结束吗?)

注2:所谓“丰富的数据结构集合”,我指的是分类的地图和集合、多重地图(允许重复键)和多重集合(允许有多个条目的集合-看起来很奇怪,但实际上非常有用!),等等。

如果说“丰富的数据结构集合”对于JS,您指的是在JavaScript
Array
s和
Object
s以及JavaScript本身上操作的实用程序,那么我建议:

下划线是一个JavaScript实用程序库,提供 很多函数式编程支持。(…)下划线提供 60多个函数同时支持两种常见的函数:
map
选择
调用
-以及更专业的助手:函数 绑定、javascript模板、深度平等测试等等。信息技术 委托给内置函数(如果存在),因此现代浏览器将 使用本机实现的
forEach
map
reduce
filter
every
部分
索引

它还设置了类似于
union
intersection
difference
、类型检查函数isXXX(
isArray
等)、函数好东西以及其他不用这样的库就可以自己编写的东西

下划线有干净的代码,经过良好的测试,现在,我每天都在JS项目中使用它


编辑问题编辑后:

我知道Guava有多重映射、多重集等,但它们都是Java设计的结果,很难用JS编写这些集合的1对1实现。这是因为Javascript没有:

  • 静态类型
  • 类,而不是使用原型(参见)
  • 接口(但另一方面具有作为一级对象的功能)
  • 易于定义的对象相等性(
    var t1={test:1},t2={test:1};t1===t2
    false
所以很难编写通用集实现,更不用说Multiset或Multimap了。例如,有些集合实现类似于或,但它们并不完美——第一个修改插入集合中的元素(!),第二个不是主流的、经过良好测试的项目(我个人从未使用过它,所以不能多说)


在Javascript中,您只需执行
var multimap={key:[1,2,3.0],key2:[4,'test',{bla:null},1]}
,而且由于语言设计,您不能只执行
multimap.containsValue({bla:null})
。我提到underline.js是因为它有95%的实用函数,而js集合就是数组和对象。如果您想要更多,只需使用,但库本身相当大。

现在有一个更轻、更快的替代品来替代underline.js:Lo-Dash()。

Javascript不是Java,所以很难为Javascript提供完整的Java/Guava产品,如Collections framework。。。