我有一个像这样的数组:['foo','bar']
我想把它变成一个看起来像这样的对象:
{ 富:{ 酒吧:{ ETC:{} } } }
我尝试了两个循环,但如果数组中有三个值,我可以让它工作。
我有一个像这样的数组:['foo','bar']
我想把它变成一个看起来像这样的对象:
{ 富:{ 酒吧:{ ETC:{} } } }
我尝试了两个循环,但如果数组中有三个值,我可以让它工作。
var obj = {};
var pointer = obj;
array.forEach(function (item) {
pointer = pointer[item] = {};
});
这是小提琴:http: //jsfiddle.net/h67ts/
如果你必须支持 IE < 9,你可以使用常规循环,或者使用这个 polyfill:
if ( !Array.prototype.forEach ) {
Array.prototype.forEach = function(fn, scope) {
for(var i = 0, len = this.length; i < len; ++i) {
fn.call(scope, this[i], i, this);
}
}
}