我一直在处理一个循环遍历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
答案 0 :(得分:0)
迭代props
数组并使用括号表示法依次查找值。
var value = obj;
for (var i = 0; i < props.length; i++) {
value = value[props[i]];
}
value = value[k];