Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 如何将数组值作为键连接以获取jSON对象值_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript 如何将数组值作为键连接以获取jSON对象值

Javascript 如何将数组值作为键连接以获取jSON对象值,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我一直在开发一个递归遍历JSON对象的函数,并希望使用它找到的每个键作为元素的类值来更改jQuery中该元素的.text值。不过,到目前为止还不错,因为我能够递归地获取键,我正在努力寻找一种方法来输入所有这些键以获取每个json对象的值: function eachRecursive(obj, aKey) { aKey = aKey === null ? '' : aKey; for (var k in obj) { if (typeof obj[k]

我一直在开发一个递归遍历JSON对象的函数,并希望使用它找到的每个键作为元素的类值来更改jQuery中该元素的
.text
值。不过,到目前为止还不错,因为我能够递归地获取键,我正在努力寻找一种方法来输入所有这些键以获取每个json对象的值:

function eachRecursive(obj, aKey)
{
    aKey = aKey === null ? '' : aKey;

    for (var k in obj)
    {
        if (typeof obj[k] == "object" && obj[k] !== null)
        {
            aKey += k + '_';
            eachRecursive(obj[k], aKey);
        }
        else
        {
            if (obj.hasOwnProperty(k))
            {
                console.log(obj[k]);

                if ($('.player_' + aKey + k).length)
                {
                    var props = aKey.split('_');
                    props.clean("");



                    $('.player_' + aKey + k).text(obj[k]);
                }
            }
            // might not even need this.
            aKey = '';
        }
    }
}
因此,
text(obj[k])
在这里不起作用,因为json在对象内部递归地循环对象

因此,
aKey
是一个字符串,用于检查类是否存在(应将json对象的每个键追加到其中。然后应检查是否存在,如果确实存在,应将值插入该元素的
.text

但我在这里讨论的是如何从插入名为
props
的数组的所有键中获取值。因此,我需要使用数组中的每个值作为
obj
对象的键来获取相应的json值

有人能帮我吗

添加到
数组中的
.clean
原型只需删除数组中的任何空值即可。特别是最后一个数组索引(因为它在
\uu
上拆分)

如何将数组值传递到
obj
以获取json值

例如,如果:

var props = ['name', 'first', 'last'];

// How to do this so we can get the value?
obj['name']['first']['last'][k]

迭代
props
数组,使用括号符号依次查找值

var value = obj;
for (var i = 0; i < props.length; i++) {
    value = value[props[i]];
}
value = value[k];
var值=obj;
对于(变量i=0;i
您好,谢谢,但还需要说明
props
何时为空数组,并且仍然需要使用
k
在这种情况下,只需返回
值[k]
这些属性中嵌套有键的
json对象。您需要整个键深度,所有键才能获得值。可能还有对象中的对象。需要完整的键结构才能获得值。但是您应该已经使用了
props
数组中的所有其他键,因此调用
[k]
这一结果应该足够了。