【问题标题】:Find value of an object查找对象的值
【发布时间】:2017-07-17 06:12:15
【问题描述】:

我有一个像哈希表一样的对象。

var ob = {
  "Earnings": {
    "name": "Finance",
    "id": "0"
  },

  "Total": {
    "token_id": 90,
    "Token": {
      "name": "E32"
    }
  }
}

现在的重点是我有 value 而不是 ob 的关键。

我有价值:

{
  "token_id": 90,
  "Token": {
    "name": "E32"
  }
}
}

我需要有效地查找值是否存在于ob中。我曾尝试过这样的循环方法。

for (var key in ob) {
  if (ob.HasOwnProperty(key)) {
    //check for the value
  }
}

这种方法适用于小数据,但对于大数据则需要时间。 那么,有什么办法可以通过在 O(1) 时间内获取(搜索)来解决这个用例吗?

【问题讨论】:

  • 预期结果是什么?当前的基准是什么?
  • 我得到了预期的结果,但是没有循环有什么办法吗?

标签: javascript json jsonschema


【解决方案1】:

我能想到的就是将 json 中的值转换为 Set 对象

JavaScript implementation of a set data structure

当您查询该集合时,它将是 O(1) 摊销,当您将其转换为集合时,它将是 O(n)

或者您可以交换值和键并放入一些人为 javascript 实现的 HashMap。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 2017-05-10
    • 2018-07-09
    • 2022-11-18
    • 1970-01-01
    • 2021-12-28
    • 2020-11-05
    相关资源
    最近更新 更多