2017-03-09 207 views
1

如何從數組中創建深度嵌套的對象。是這樣的...數組中深度嵌套的對象

const a = ['a', 'b', 'c', 'd']; 

到...

{ 
    a: { 
    b: { 
     c: { 
     d: {} 
     } 
    } 
    } 
} 

,並可能爲深有數組..

+0

總之...'a.reduceRight((P,C)=>({[C]:P}),{})' – Phil

回答

1

使用Array#reduce方法中的元素。

const a = ['a', 'b', 'c', 'd']; 
 

 
let res = {}; 
 

 
a.reduce((obj, e) => obj[e] = {}, res) 
 

 
console.log(res)


或用Array#reduceRight方法。

const a = ['a', 'b', 'c', 'd']; 
 

 
let res = a.reduceRight((obj, e) => ({ [e]: obj }), {}) 
 

 
console.log(res)

+0

你怎麼在我回答關閉了這個問題? – Phil

+1

這很酷,返回第一個片段中的作業:) – Phil