【发布时间】:2014-06-12 07:33:07
【问题描述】:
我环顾四周,但没有找到解决这个问题的方法:
我正在尝试获取导致给定键或值的完整路径(键列表)(考虑到欺骗)。
我知道它类似于这个问题:
how to get the path of an object's value from a value in javascript
但您可能会发现不同的方式:
- 按键
- 按价值
- 如果存在任何欺骗,它应该返回一个包含所有可能性的数组
一个简短的例子比长篇演讲更有说服力:
示例代码:
var data = {
"key1": {
"key1SubKey1": {
"key1SubSubKey1": "key1SubSubKey1_value"
},
"key1SubKey2": {
"key1SubSubKey2": "key1SubSubKey2_value"
},
"key1SubKey3": {
"key1SubSubKey3": "key1SubSubKey3_value"
},
"duplicatedKey": "duplicated_value"
},
"key2": {
"key2SubKey1": {
"key2SubSubKey1": "key2SubSubKey1_value"
},
"key2SubKey2": {
"key2SubSubKey2": "key2SubSubKey2_value"
},
"key2SubKey3": {
"key2SubSubKey3": "key2SubSubKey3_value"
},
"duplicatedKey": "duplicated_value"
}
}
使用示例
按值搜索
getPathFromValue (data, "key2SubSubKey1_value") ;
// This should return : data['key2']['key2SubKey1']['key2SubSubKey1']
getPathFromValue (data, "duplicated_value") ;
// [ data['key1']['duplicatedKey'], data['key2']['duplicatedKey'] ]
按键搜索
getPathFromKey (data, "key2SubSubKey1") ;
// data['key2']['key2SubKey1']
getPathFromKey (data, "duplicatedKey") ;
// [ data['key1'], data['key2'] ]
【问题讨论】:
-
到目前为止你尝试了什么?
-
到目前为止我有这个jsfiddle.net/u2dK3,它肯定可以改进;)。我只从值中获取路径,而不是从键中...
标签: javascript json node.js