如何在JavaScript中为Object使用一些字符串参数?

时间:2016-01-11 13:11:06

标签: javascript javascript-objects

示例:

var v1 = "['a']";
var v2 = "['b']['c']";
var obj = {a: 'a', b: {c: "['b']['c']"}};

是否可以使用' v1'或' v2'就像一个方法,对象'?我需要它用于API,因为我不知道我应该解析什么。它可以是obj [' a']或obj [' b'] [' c']。任何解决方案?

1 个答案:

答案 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;
&#13;
&#13;

如果您认为自己可以使用它,但有任何您不理解的内容,请发表评论,我会添加一些说明。