【问题标题】:Find key of nested object and return its path查找嵌套对象的键并返回其路径
【发布时间】:2017-05-30 16:42:29
【问题描述】:

有没有人知道一个好的 javascript npm 包(或有一些好的功能)来查找 JSON 键并返回其路径(或路径,如果键在嵌套 JSON 中多次存在)

for example:
var person={
"name":myName,
"address":{
"city",
"location":{
"long":123,
"lat":456
}
"long"

我想使用一个函数来返回这个键的路径,在上面的例子中,键“long”存在两次:

console.log(getKeyPath(person,"long"); //address.long , long

【问题讨论】:

  • 递归检查遍历对象并存储路径,找到后返回路径...如果有多个匹配的键会发生什么?
  • 您正在寻找深度优先搜索。

标签: javascript json object path-finding


【解决方案1】:

使用obj-flatten,您可以将其设为平面对象:

var person = {
  "name": "your name"
  "location.long": 123,
  "location.lat": 456,
  "long": 42,
  ...
}

然后您只需按该模式进行查询:

var searchKey = "long";
var yourKeys = Object.keys(person).filter(function (c) {
   return c.split(".").indexOf(searchKey) !== -1;
});
// => ["location.long", "long"]

【讨论】:

    【解决方案2】:

    如果您正在学习该语言,则始终推荐使用原生 javascript,但您可以使用 lodash 库。 https://lodash.com/docs/4.17.4#at

    读取一些方法,例如 _.at()、_.has() 或 _.findKey()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      相关资源
      最近更新 更多