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