我有幾個陣列如下面的:變換數組具有嵌套屬性的對象
[ 'businessOpenAccount', 'accountSettings1.page.js' ]
[ 'businessOpenAccount', 'accountSettings2.page.js' ]
[ 'mainTest', 'test', 'test1.page.js' ]
[ 'mainTest', 'test', 'test2.page.js' ]
我的預期的結果是具有這樣一個目的:
{
businessOpenAccount: {
'accountSettings1.page.js': {},
'accountSettings2.page.js': {}
},
mainTest: {
test: {
'test1.page.js': {},
'test2.page.js': {}
}
}
}
所以實際上我想解析數組並且構建一個嵌套對象以從它們返回,但是一定要檢查一個屬性是否已經存在(因爲從前一個數組定義),我不會覆蓋它,但只需添加新的嵌套對象屬性,尊重嵌套的正確順序。
我嘗試了幾種方法使用reduce
,reduceRight
和簡單forEach
/for
循環,但我仍然不能真正實現我想要的解決方案。
請提出任何提示?
這是我迄今爲止最好的方式,但我替換的屬性騎自行車在多個陣列(具有單個陣列爲例):
const relevantFilePath = ['businessOpenAccount', 'accountSettings.page.js'];
let obj = {};
relevantFilePath.forEach((el, ind) => {
if (ind === 0) {
obj[el] = {};
previousEl = obj[el];
} else {
previousEl[el] = {};
previousEl = previousEl[el];
}
});
console.log(obj);
我是粗魯的,如果我好心說,我真的真的愛你?太感謝了! – quirimmo