["a", "b", "c", "d", "e"]
{"a":{"b":{"c":{"d":{"e":{}}}}}}
const result = arr.reduceRight((acc, n) => ({ [n]: acc }), {});
let result = {};
for (let i = arr.length; i--;) {
result = { [arr[i]]: result };
}
const result = (function createObj(arr, i) {
return i < arr.length
? { [arr[i]]: createObj(arr, -~i) }
: {};
})(arr, 0);