Javascript 按值获取对象键路径
我试图根据输入到函数中的值获取属性的路径。我上下搜索过,很容易找到相反的结果。它的工作原理如下: 给定Javascript 按值获取对象键路径,javascript,arrays,object,Javascript,Arrays,Object,我试图根据输入到函数中的值获取属性的路径。我上下搜索过,很容易找到相反的结果。它的工作原理如下: 给定 var myObj = { some: { thing: 'hello' }, other: { thing: 'world' } } getPath(myObj,'hello')将返回'some.thing'或['some','thing'](最好是数组) 如果这对不同大小的对象也是灵活的,那就太棒了+lodash解决方案的积分。这只适用于两个级别的深度,是
var myObj = {
some: {
thing: 'hello'
},
other: {
thing: 'world'
}
}
getPath(myObj,'hello')
将返回'some.thing'
或['some','thing']
(最好是数组)
如果这对不同大小的对象也是灵活的,那就太棒了+lodash解决方案的积分。这只适用于两个级别的深度,是一种快速解决方案:
function getPath (obj, name) {
var location = null;
for (var lvl_1 in obj) {
if (obj[lvl_1] === name) {
location = lvl_1;
return location;
} else if (typeof obj[lvl_1] === 'object') {
for (var lvl_2 in obj[lvl_1]) {
if (obj[lvl_1][lvl_2] === name) {
location = lvl_1 + '.' + lv;_2;
return location;
}
}
}
}
return location;
}
我用你的变量运行了这个
>getPath(myObj,'hello')
“一些东西”
如果需要阵列,请将其拆分:
>getPath(myObj,'hello').split('.')
[“一些”、“东西”]
请分享您的尝试。我认为您必须为此创建一个自定义解决方案…请参阅以获得一个良好的开端