JavaScript集合框架

10

像Java有其集合框架一样,

在JavaScript中是否有可用的API,可以将JSON对象存储在map中进行键值对并且具有排序功能,

List或Vector功能,其中大小可以自动增长,并且

HashSet/TreeSet功能用于存储无重复项的Json对象或项。

编辑:

将具有ListIterator功能,以便我们可以双向遍历。

还有一个缺少的功能是可以从数组中间删除项,以便在之后重新排列。

比较器功能将是一个额外的优势。

6个回答

4

不需要。这些功能大多数都是JavaScript本身就具备的。

  • 每个JavaScript对象都只是键值对(而且通常还有原型...)- 你知道JavaScriptObjectNotation吗?
  • 列表和向量都由本地的自动增长数组类型Array覆盖
  • 所有数组都继承了sort()方法,可使用自定义比较器方法
  • ...你不需要花费太长时间就可以找到一个从对象/数组中删除重复项的代码片段。即使有自定义比较器。
  • (编辑过的): 所有数组都继承了splice()方法,以从索引中删除项目
  • ListIterators:截至ES5.1,所有数组都具有迭代方法,这非常适合JavaScript的功能方法

然而,有一些库可以扩展这些功能。例如,underscore.js将对象和数组都视为可迭代集合,存在HashMap实现用于存储非字符串键的值等等。此外,几乎所有MVC框架都实现了自己的集合对象(用于模型),以跟上对它们的更改。


2

我在我的jshashtable中实现了具有任意键的HashTableHashSet


1
你可以使用下面提到的库。只需执行npm install collectiondatalib即可。 特点: www.npmjs.com/package/collectiondatalib 它非常易于使用,所有集合搜索和排序方法都可用。

1
Javascript的内置数组是“自动增长”的,实际上与Java中的Collection功能非常相似。
但是,如果您需要类似于HashSet的东西,可以看一下TaffyDB(TaffyDB),它被认为是Javascript的某种“数据库”,但我认为它是在内存中运行的。

1

ExtJs(肯定)和(我认为)jQuery都具有这样的功能。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接