2012-07-11 52 views
2

我想使用字符串選擇器設置對象屬性。我有一個字符串model.name,我有一個對象來存儲值。而不是存儲在object[model.name]中的值,我想將其存儲在object[model][name]使用字符串選擇器設置javascript屬性

這怎麼可以用javascript/jQuery或JavaScript/jQuery插件來完成?

+0

爲什麼downvote?好的,是一個簡單的問題。但是這裏的任何人都是過去的新手。或不? – devundef 2012-07-11 15:33:57

+0

我嘗試了大多數常用的設置數據的方式,我從php知道,我通常不使用javascript,我通常使用後端編程創建ORM系統... – 2012-07-11 15:49:50

回答

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); 
+0

謝謝你的工作:-) – 2012-07-11 15:47:50

相關問題