我顯然不能抽象地想到做到這一點...但我想創建一個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