Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按值获取对象键路径_Javascript_Arrays_Object - Fatal编程技术网

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('.')

[“一些”、“东西”]


请分享您的尝试。我认为您必须为此创建一个自定义解决方案…请参阅以获得一个良好的开端