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

时间:2015-10-02 16:49:53

标签: javascript jquery arrays json

我一直在处理一个循环遍历JSON对象的函数,并希望使用它找到的每个键作为元素的类值来更改jQuery中该元素的.text值。所以,非常好,因为我能够递归地获得Keys,我正在努力寻找一种方法来输入所有这些键来获取每个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的{​​{1}}原型只是删除数组中的所有空值。特别是最后一个数组索引(因为它在Array上分割)。

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

例如,如果:

obj

1 个答案:

答案 0 :(得分:0)

迭代props数组并使用括号表示法依次查找值。

var value = obj;
for (var i = 0; i < props.length; i++) {
    value = value[props[i]];
}
value = value[k];