示例:
var v1 = "['a']";
var v2 = "['b']['c']";
var obj = {a: 'a', b: {c: "['b']['c']"}};
是否可以使用' v1'或' v2'就像一个方法,对象'?我需要它用于API,因为我不知道我应该解析什么。它可以是obj [' a']或obj [' b'] [' c']。任何解决方案?
答案 0 :(得分:1)
这是我所谈论的一个例子,用一个解析字符串输入并查找相应元素的函数扩展你的对象。
这里的一个重要警告是,我对处理引文很懒,所以你需要稍微调整一下来处理单引号和双引号。我还没有经过广泛的测试,但我认为如果对象中没有匹配项,它将返回undefined。
var v1 = "['a']";
var v2 = "['b']['c']";
var obj = {
getByStr: function(str) {
var args = str.replace("['", '').replace(new RegExp("'\]" + '$'), '').split("']['");
var match = this[args.shift()];
while(match !== undefined && args.length > 0)
match = match[args.shift()];
return match;
},
a: 'a',
b: {
c: "['b']['c']"
}
};
document.write('v1 -- ' + obj.getByStr(v1) + '<br />');
document.write('v2 -- ' + obj.getByStr(v2) + '<br />');
&#13;
如果您认为自己可以使用它,但有任何您不理解的内容,请发表评论,我会添加一些说明。