Javascript 如何将数组值作为键连接以获取jSON对象值
我一直在开发一个递归遍历JSON对象的函数,并希望使用它找到的每个键作为元素的类值来更改jQuery中该元素的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]
.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]
这一结果应该足够了。