El siguiente código llena un objeto llamado result con los valores de las keys como las claves y una cadena vacía como el valor de cada clave. Esto está funcionando como se desea.
const keys = ['one', 'two', 'three']; const result = {}; keys.forEach(key => { result[key] = ''; }); console.log(result); Sin embargo, me pregunto si el objeto de result se puede crear en un solo comando usando .map . A continuación se muestra lo que probé, pero produce una variedad de objetos en lugar de un solo objeto.
const result = keys.map(key => ({ [key]: '' })); console.log(result);Puede combinar Object.fromEntries y métodos de map . Con el map , puede obtener una matriz de pares [key, value] y luego, al llamar a fromEntries , obtiene un objeto de esa matriz.
const keys = ['one', 'two', 'three']; const result = Object.fromEntries(keys.map(k => ([k, '']))) console.log(result)Aquí hay un enfoque alternativo que solo necesita un método. ( Array.prototype.reduce() )
const keys = ["one", "two", "three"]; const result = keys.reduce((a, c) => ({ ...a, [c]: "" }), {}); console.log(result);puedes usar tu mapa, luego reducir:
keys .map(k => ({[k]: ""})) .reduce((x, r) => ({...x, ...r}), {})