【问题标题】:Javascript Data Structures for Efficient Insertion and Searching用于高效插入和搜索的 Javascript 数据结构
【发布时间】:2012-06-22 20:54:28
【问题描述】:

我需要一个 Javascript 数据结构,它可以让我有效地插入字符串和搜索字符串。我一直在环顾四周,我遇到的唯一数据结构是对象和数组。对象更多地用于封装,不能真正用于搜索,使用数组可能会很慢。是否有任何其他数据结构可以让我有效地插入和搜索字符串?现在充其量我可以对数组进行二进制搜索。还有其他想法吗?谢谢。

【问题讨论】:

  • 请详细说明您希望执行哪种“搜索”。
  • 您能否更具体地说明“插入”和“搜索”的含义?
  • 好吧,我想在某个数据结构中插入一个字符串,然后返回并搜索该数据结构以查看该字符串是否存在。搜索的字符串数量相当大,并且经常出现,因此使用线性搜索(for循环)不是最好的方法。
  • 搜索完全匹配还是部分匹配?
  • @ewein 然后使用地图/“对象”。 strs = {"hello world": 1}; "hello world" in strs // -> true in "O(1)" time(请记住,用于访问对象属性的键会自动转换为字符串,这里没问题,因为它们只是字符串。)

标签: javascript performance data-structures


【解决方案1】:

对象更多用于封装,不能真正用于 搜索

在经典语言中确实如此,在 JS 中则不然。

   var obj = { memberone: "value1" }

   var value = obj["memberone"];

   //value === "value1"

可以在 JS 中搜索对象。忍受我...

而且使用数组可能会很慢。

是的,可以——但不一定是。

是否有任何其他数据结构可以让我插入和 有效地搜索字符串?

数据结构?不,这又是一个经典的观点。在 JS 中就不同了。

查看_underscore.js

  1. 这是 4k min gzip。
  2. 它提供了许多高级迭代器助手(因此您不必这样做)
  3. 它提供了模板来有效地在屏幕上显示您的数据。
  4. 它将使您的其余开发、维护和实施受益。

这是 JS 灵活性的一个很好的例子。

希望对您有所帮助。 祝一切顺利! 纳什

【讨论】:

    【解决方案2】:

    看了几眼后发现还有一些,

    Javascript data structures - a collection object

    您还可以使用 json 对象及其 JavaScript API 来进行操作。请参考here

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      相关资源
      最近更新 更多