9

就像 Java 有它的 Collection Framework 一样。Javascript哪里有可用的api

我们可以将 JSON 对象存储在映射中的键值对和

它将具有排序功能和

列表或矢量功能,其大小将自动增长,并且

HashSet/TreeSet 功能来存储重复的自由 Json 对象或项目。

编辑:

ListI 迭代器功能将在那里我们可以双向遍历。

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

比较器设施将是一个额外的优势。

4

6 回答 6

4

不,这些特性中的大部分都是 JavaScript 原生的。

  • 每个 javascript 对象都只是键值对(而且,主要是原型......) - 你知道 J ava S cript O bject Notation吗?
  • 列表和向量都被自动增长的原生 Array 类型覆盖
  • 所有数组都继承sort()方法,并提供自定义比较器方法
  • ...而且您不需要很长时间就可以找到从对象/数组中删除重复项的片段。即使使用自定义比较器。
  • (已编辑):所有数组都继承splice()方法以从 indizes 中删除项目
  • ListIterators:从 ES5.1 开始,所有数组都有迭代方法,这些方法与 JavaScript 的函数式方法配合得很好

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

于 2012-05-30T06:44:36.520 回答
2

我已经HashTable用任意键和HashSet我的jshashtable实现了。

于 2012-05-30T08:26:13.220 回答
1

尝试查看 Backbone JS,我认为您可以使用它的模型和集合。网站http://backbonejs.org/和这里的教程http://backbonetutorials.com/

谢谢,

苏丹

于 2012-05-30T06:47:47.497 回答
1

Javascript 的内置数组是“可自动增长的”,实际上与您从 Java 中的 Collection 获得的功能非常相似。

但是,如果您需要类似 HashSet 的东西,您可以查看TaffyDB,它应该是 Javascript 的“数据库”,但我认为它可以在内存中工作。

于 2012-05-30T06:40:11.327 回答
1

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

于 2012-05-30T06:44:28.503 回答
1

您可以使用下面提到的库。做吧npm install collectiondatalib

特点www.npmjs.com/package/collectiondatalib

它非常易于使用,并且所有集合搜索和排序方法都可用。

于 2020-05-05T10:57:35.750 回答