23

我喜欢 node JS,并且来自 Java 背景,甚至有兴趣在一些 node 看起来有点牵强的项目中尝试它,例如搜索引擎项目。

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

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

如果还有其他类似的问题,我深表歉意,但是我花了一些时间搜索并没有想出太多。

4

9 回答 9

14

es6 内置了一个 Set 类:

new Set([iterable]);

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

于 2015-11-22T23:58:48.330 回答
8

Collections.js有 Lists、Maps、Queues、Sets 和 Heaps,都具有一致的接口。GitHub。

于 2015-04-01T01:18:46.507 回答
6

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

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

我不确定您是否真的会使用 Javascript 找到您要查找的内容。但是,有一些类似的库underscore应该可以更轻松地构建您想要的结构类型。

于 2012-08-30T20:43:26.877 回答
6

node.js 没有对象和其他东西不再是Set真的Mapnode.js 从最迟 v12 开始就拥有它们

但是,当然,如果您想要 java 之类的库,请查看 npm 或 github。您不仅限于 node.js 中的标准内容。

于 2015-07-28T09:08:06.763 回答
5

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

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

于 2012-08-30T20:39:29.033 回答
5

作为 Underscore.js 的更轻、更快的替代品,Lo-Dash ( http://lodash.com/ ) 在那些日子里越来越受欢迎……但这不是 Java.util!:-)

于 2013-12-24T14:55:31.737 回答
1

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

于 2012-08-31T00:14:03.650 回答
1

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

我认为它适合您正在寻找的东西。

于 2013-10-22T19:29:02.857 回答
0

我知道这个线程很旧,但想插话以供将来参考和通过网络搜索到达这里的人们。我一直在构建一个 Node.js 库,以解决 JavaScript 中标准数据结构不可用的问题,类似于 Java 集合。它在这里可用 - https://github.com/monmohan/dsjslib

欢迎贡献者:)

于 2014-05-29T05:13:29.773 回答