2011-11-20 58 views
2

有人可以幫助我創建一個JavaScript函數,將下面的字符串變成一個對象嗎?JavaScript函數從字符串創建結構化對象?

var structure = 'user.location.city'; 

當通過JavaScript函數運行將返回結構化這樣的對象:

user: { 
    location: { 
    city: {} 
    } 
} 

我想出了下面的代碼,但對象是一團糟:

var path = structure.split('.'); 
var tmp_obj = {}; 
for (var x = 1; x < path.length; x++) { 
    tmp_obj[path[x]] = {}; 
}; 

我不知道如何將「城市」對象添加到「位置」對象。

+0

這太問題可能會有所幫助http://stackoverflow.com/questions/7640727/javascript-nested-objects-from-string –

回答

3
var path = structure.split('.'); 
var tmp_obj = {}; 
var obj = tmp_obj; 
for(var x = 1; x < path.length; x++) { 
    tmp_obj[path[x]] = {}; 
    tmp_obj = tmp_obj[path[x]]; 
}; 
+0

謝謝你這麼多 –

+0

這並不爲我工作。 https://plnkr.co/edit/VjFiOGl2AC83HcLGQTJv?p=preview 你沒有使用「obj」變量?你爲什麼不從0而不是1來計數? – Gerfried

+0

其他答案可以在這裏找到:http://stackoverflow.com/questions/32029546/create-a-javascript-object-from-string – Gerfried