在Javascript中的对象的任何级别上获取元素 [英] Get element on any level of an object in Javasscript
本文介绍了在Javascript中的对象的任何级别上获取元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给出以下内容:
var a = JSON.parse('{"fst":"data1","snd":{"ind2":"data2"}}');
var index = "fst";
var res = a[index]; //res = data1
var index2 = "????";
var res2 = a[index2]; //res = data2
我应该穿什么index2
,以使res2
等于data2
?
what should I put on index2
so res2
equals data2
?
我正在寻找一种通用语法,只需修改索引字符串即可让我在解析的json的任何级别上获取元素.
I'm looking for a generic syntax that would let me grab an element at ANY level of the parsed json, just by modifying the index string.
(我正在遍历json派生对象的不同位置/级别的元素列表以构建表)
(I'm looping through a list of elements from different places/levels of a json derived object to build a table)
任何帮助将不胜感激
推荐答案
为此您需要一个函数
function deepAccess( obj, str ) {
var parts = str.split("."),
cur = obj;
for( var i = 0; i < parts.length; ++i ) {
cur = cur[parts[i]];
}
return cur;
}
var index = "fst";
deepAccess( a, index ); //"data1"
index = "snd.ind2";
deepAccess( a, index ); //"data2"
这篇关于在Javascript中的对象的任何级别上获取元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文