如何解析字符串到javascript对象选择器

时间:2015-07-05 09:06:45

标签: javascript

我想将字符串解析为对象对象选择器,如下所示:

var test = 'object.prop1.prop2';

into 

object['prop1']['prop2'];

问题是我不知道字符串可以有多少属性。

解析字符串的最佳方法是什么,理想情况下没有像json parse / eval这样的东西?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

Juhana的链接非常好,但也比你在这里有一个复杂的问题。这是我的看法(https://jsfiddle.net/gm32f6fp/3/):

var object = {
    prop1: {
        prop2: {
            foo: 1
        }
    }
};

function get(object, key) {
    var keys = key.split('.');
    for (var i = 0; i < keys.length; i++) {
        if (!object.hasOwnProperty(keys[i])) {
            return null;
        }
        object = object[keys[i]];
    }
    return object;
}

console.log(get(object, 'prop1.prop2'));
console.log(get(object, 'prop1.prop3'));

我们的想法是获取密钥串,根据点将其拆分。然后你有一个任意大的键数组,所以我们逐个拿出每个键,然后潜入对象。 (如果我们最终走向死胡同,我们就会纾困。)