Javascript 查找嵌套对象的键并返回其路径

Javascript 查找嵌套对象的键并返回其路径,javascript,json,object,path-finding,Javascript,Json,Object,Path Finding,是否有人知道一个好的javascript npm包(或者有一些好的函数)来查找JSON键并返回其路径(或者如果键在嵌套JSON中多次存在,则返回路径) 我想使用一个函数返回该键的路径,在上面的示例中,键“long”存在两次: console.log(getKeyPath(person,“long”); //address.long,long使用可以使其成为平面对象: var person = { "name": "your name" "location.long": 123, "l

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

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

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

使用可以使其成为平面对象:

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"]

如果您正在学习该语言,但可以使用lodash库,则始终建议使用本机javascript。


阅读一些方法,如.at()、.has()或.findKey()

递归检查来循环对象并存储路径,找到后返回路径…如果有多个匹配的键,会发生什么情况?您正在寻找深度优先搜索。
var searchKey = "long";
var yourKeys = Object.keys(person).filter(function (c) {
   return c.split(".").indexOf(searchKey) !== -1;
});
// => ["location.long", "long"]