Заполнить вложенный объект из массива?

#javascript #arrays #object

#javascript #массивы #сортировка

Вопрос:

У меня вопрос, как создать вложенный объект из массива? Т.е. у меня есть следующий массив:

var myArr = ['foo', 'bar', 'baz'] и нужно сделать его объектом, подобным:

myObj = {foo: { bar: { baz: { } } }}

Как я могу сделать это правильно?

Ответ №1:

Используйте reduce()

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

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

console.log(myObj); 

Ответ №2:

вы можете сделать лучше ! :

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

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

document.write( JSON.stringify(obj) ) 

Использование метода .reduceRight()