我显然不能抽象地想到做到这一点...但我想创建一个Javascript对象的阵列使用数组值作为属性名称,但他们应该嵌套对象内彼此。创建一个嵌套的Javascript对象
所以,如果我有一个这样的数组:
['First', 'Second', 'Third', 'Fourth']
我的预期输出是:
{
First: {
Second: {
Third: {
Fourth: {}
}
}
}
}
UPDATE 下面是我用的是作为commment提到的功能:
function appendKey(obj, to, key) {
if (obj.hasOwnProperty(to)) {
appendKey(obj[to], to, key);
} else {
obj[key] = {};
}
return obj;
}
我的inte NT是称呼其为这样的:
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' { } } }
[?你尝试过什么(http://whathaveyoutried.com) – 2013-02-21 16:56:20
我尝试了一个自调用函数,它将原样提取对象和要添加的密钥。如果键不存在,则将其添加到传递的对象并返回。如果键存在,它会再次调用它自己,但在第一个参数中使用'object.key'。 – 2013-02-21 17:02:02
@HonusWagner:它做了什么,它做了什么?你能告诉我们代码吗? – Martijn 2013-02-21 17:03:24