2

文字列セレクターを使用してオブジェクトのプロパティを設定したいと考えています。文字列がmodel.nameあり、値を格納するオブジェクトがあります。値をに格納する代わりに、に格納しobject[model.name]たいと思いobject[model][name]ます。

javascript/jQuery または javascript/jQuery プラグインでどのように達成できますか?

4

1 に答える 1

3
function setObjectPathValue(source, path, value) {
    var parts = path.split('.'), len = parts.length, target = source;

    for (var i = 0, part; i < len - 1; i++) {
        part = parts[i];
        target = target[part] == undefined ? (target[part] = {}) : target[part];
    }
    target[parts[len - 1]] = value;
    return target;
}

var obj = {};
setObjectPathValue(obj, "level1.level2.level3.name", "test");
alert(obj.level1.level2.level3.name);
于 2012-07-11T15:31:31.523 に答える