2017-03-09 155 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