как превратить массив в объект объектов - PullRequest
0 голосов
/ 31 мая 2018

Я бы хотел, чтобы этот массив:

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 31 мая 2018
const result = myArr.reduceRight((accumulator, currentValue) => {
  return {
    [currentValue]: accumulator
  };
}, '');

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

const result = myArr.reduceRight((accumulator, currentValue) => 
  ({[currentValue]: accumulator}), '');
0 голосов
/ 31 мая 2018

Это не красиво, но работает!

const arrayToNestedObject = function(arr){
    let start = '';
    let end = '';
    for(let i = 0; i < arr.length; i++){
        start += '{"' + arr[i] + '":';
        end += "}";
    }
    start += '""';
    return JSON.parse(start + end);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...