Я бы хотел, чтобы этот массив:
const myArr = ['lorem', 'ipsum', 'dolor', 'sit', 'amet']
превратился в объект, который выглядел бы так:
{ lorem:{ ipsum:{ dolor:{ sit:{ amet: '' } } } } }
Есть ли простой способ сделать это?
const result = myArr.reduceRight((accumulator, currentValue) => { return { [currentValue]: accumulator }; }, '');
Если вы хотите, вы можете сократить синтаксис:
const result = myArr.reduceRight((accumulator, currentValue) => ({[currentValue]: accumulator}), '');
Это не красиво, но работает!
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); }