2011-11-20 118 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