Encontré una manera de construir objetos dinámicamente a partir de rutas de texto. La solución se basa en el reductor pasado a Array.prototype.reduce() actualizando el parámetro initialValue a través del parámetro de devolución de llamada de previousValue . Aquí hay un ejemplo simplificado:
const initialValue = {}; ['a', 'b', 'c'].reduce((previousValue, currentValue) => { previousValue[currentValue] = {}; return previousValue[currentValue]; }, initialValue); console.log(initialValue); //{ a: { b: { c: {} } } } Aparentemente, el {} más interno de initialValue se reemplaza con { currentValue: {}} en cada iteración. ¿Dónde se define este comportamiento? En caso de que no esté definido, ¿de qué otra manera podría construirse un objeto basado en rutas de texto?