我显然不能抽象地思考这样做......但我想从一个使用数组值作为属性名称的数组中创建一个 Javascript 对象,但它们应该是相互嵌套的对象。
所以如果我有一个这样的数组:
['First', 'Second', 'Third', 'Fourth']
我的预期输出是:
{
First: {
Second: {
Third: {
Fourth: {}
}
}
}
}
更新 这是我在评论中提到的使用的功能:
function appendKey(obj, to, key) {
if (obj.hasOwnProperty(to)) {
appendKey(obj[to], to, key);
} else {
obj[key] = {};
}
return obj;
}
我的意图是这样称呼它:
var data = ['First', 'Second', 'Third', 'Fourth'];
data = appendKey(data, 'First', 'Second');
data = appendKey(data, 'Second', 'Third');
data = appendKey(data, 'Third', 'Fourth');
显然,这可以放入一个循环中,这就是我想这样做的原因。我的输出最终是:
data = { 'First' : { 'Second' } } // it works this time!
data = { 'First' : { 'Second' },
'Third' : { } }
data = { 'First' : { 'Second' },
'Third' : { 'Fourth' { } } }