JavaScript中的对象字符串,一个对象

时间:2018-05-19 08:42:48

标签: javascript string object

我有一个字符串

module: {
    ...
    noParse: /(mapbox-gl)\.js$/
}

现在我需要一个obj对象

string = "foo.call=45&doo.foo=20&foo.in=5";

我怎样才能在JavaScript中执行此操作? 对于一个字符串=" foo.call = 45"

obj = {"foo": {"call": "45"}} {"foo": {"call": "45","in":"5"},"doo": {"foo":20}}

1 个答案:

答案 0 :(得分:1)

您可以将字符串拆分为等号,并将左侧部分作为对象中值的路径。



function setValue(object, path, value) {
    var way = path.split('.'),
        last = way.pop();

    way.reduce((o, k) => o[k] = o[k] || {}, object)[last] = value;
    return object;
}

function getObject(string, object = {}) {
    string
        .split('&')
        .forEach(s => setValue(object, ...s.split('=')));

    return object;
}

console.log(getObject('foo.test.rest.call=45'));
console.log(getObject('foo.call=45&doo.foo=20&foo.in=5'));

.as-console-wrapper { max-height: 100% !important; top: 0; }