Мне нужен этот массив:

const myArr = ['lorem', 'ipsum', 'dolor', 'sit', 'amet']

Превратиться в объект, который будет выглядеть так:

{
  lorem:{
    ipsum:{
       dolor:{
         sit:{
           amet: ''
         }
       }
     }
   }
 }

Есть ли простой способ сделать это?

1
Magda 31 Май 2018 в 00:54

1 ответ

Лучший ответ
const result = myArr.reduceRight((accumulator, currentValue) => {
  return {
    [currentValue]: accumulator
  };
}, '');

Если хотите, можете сократить синтаксис:

const result = myArr.reduceRight((accumulator, currentValue) => 
  ({[currentValue]: accumulator}), '');
1
Aaronius 30 Май 2018 в 22:25