Populate nested object from array?

Solution 1:

Use reduce()

var myArr = ['foo', 'bar', 'baz'];
var myObj = {};

myArr.reduce(function(a, b) {
  a[b] = {};
  return a[b];
}, myObj);

console.log(myObj);

Solution 2:

you can do better ! :

let arr = ['foo', 'bar', 'baz'];

let obj = arr.reduceRight((a,c)=>({[c]:a}),{})

document.write( JSON.stringify(obj) )

Using .reduceRight() method