Node JS,传统的数据结构? (比如Set等),像节点的Java.util这样的东西?

时间:2012-08-30 19:54:49

标签: javascript node.js data-structures set

我喜欢节点JS,并且来自Java背景,我甚至有兴趣尝试一些节点可能看起来有点延伸的项目,例如搜索引擎项目。

我有点困惑的一件事是,似乎JavaScript缺乏传统的数据结构,例如一个集合,它具有超越计算机科学的精确定义,因为它已经在计算机存在之前用于数学(基本上一个不允许重复的列表)。似乎在使用节点JS时,没有像Java.util这样的库具有我已经习惯的这些基本数据类型,我意识到我可以自己创建它们但这只会增加项目的开销。

是否有任何节点(或一般的JavaScript)可以解决此问题?我认为node在很多项目中有很大的潜力可以取代像Java这样的语言,因为它在开发速度方面有很多优势,但是必须重新创建在更成熟的平台中被认为是理所当然的数据结构对于一个小项目来说可能是一个太多的开销。

如果还有其他类似问题我会道歉,不过我花了一些时间搜索并没有提出太多问题。

9 个答案:

答案 0 :(得分:14)

es6有一个内置的Set类:

new Set([iterable]);

请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

答案 1 :(得分:8)

Collections.js包含列表,地图,队列,集和堆,所有这些都具有一致的接口。 Github.

答案 2 :(得分:6)

  似乎JavaScript缺乏传统的数据结构......

是的,这是javascript,数据结构的概念和实现与Java等语言完全不同。

我不确定你是否真的会用Javascript找到你想要的东西。但是,有一些像underscore这样的库应该可以更容易地构建你想要的结构类型。

答案 3 :(得分:6)

不再认为node.js没有SetMap个对象。 node.js has had them since at latest v12

但是,当然,如果你想要像java这样的库,请检查npm或github。您不仅限于node.js中标准的内容。

答案 4 :(得分:5)

作为Underscore.js的更轻,更快的替代方案,Lo-Dash(http://lodash.com/)在那些日子里正在吸引......但这不是Java.util! : - )

答案 5 :(得分:4)

你看过Underscore.js吗? http://underscorejs.org/

它与java.util不是一对一的,但它提供了许多常用的实用程序功能。

答案 6 :(得分:1)

像这样:https://github.com/PeterScott/simplesets-nodejs,但是有其他数据结构吗?

答案 7 :(得分:1)

看一下这个:https://github.com/chenglou/data-structures

我认为它符合您的要求。

答案 8 :(得分:0)

据我所知,这个帖子已经老了,但是想要将来参考,以及通过网络搜索到达这里的人们。 我一直在构建一个Node.js库,以解决JavaScript中标准数据结构的不可用性,类似于Java集合。 它可以在这里找到 - https://github.com/monmohan/dsjslib

欢迎贡献者:)