¿Hay alguna forma de generar un Object JavaScript anidado a partir de las entradas?
Object.fromEntries() no lo hace del todo ya que no hace objetos anidados.
const entries = [['a.b', 'c'], ['a.d', 'e']] // Object.fromEntries(entries) returns: { 'a.b': 'c', 'a.d': 'e', } // whatIAmLookingFor(entries) returns: { a: { b: 'c', d: 'e', } }Podría reducir las entries de la matriz y también reducir las claves. Luego asigne el valor al objeto final con la última clave.
const setValue = (object, [key, value]) => { const keys = key.split('.'), last = keys.pop(); keys.reduce((o, k) => o[k] ??= {}, object)[last] = value; return object; }, entries = [['a.b', 'c'], ['a.d', 'e']], result = entries.reduce(setValue, {}); console.log(result);Creo que encontré una manera de usar lodash :
import set from 'lodash/set' const result = {} const entries = [['a.b', 'c'], ['a.d', 'e']] entries.forEach((entry) => { const key = entry[0] const value = entry[1] set(result, key, value) })