Estoy tratando de analizar un diccionario en una cadena en una línea de la manera más elegante posible.
La cadena podría tener desde 1 par de valores clave hasta 10.
El diccionario que tengo:
var dict = { rel: 'preload', as: 'image', type: 'image/webp' }Y estoy tratando de analizarlo en una cadena de consulta convirtiéndolo en:
return "rel='preload' as='image' type='image/webp'"Sé que usando Object.keys y forEach puedo atravesar el Dict, pero ¿cómo lo concateno también en la misma declaración?
Esto es lo lejos que he llegado:
Object.keys(dict).forEach(key => console.log(`${key}="${dict(key)}"`) )¿Cómo concateno el resultado de eso en la misma línea? ¿Es posible? He estado intentando con:
.reduce() .push() .concat() .join()pero parece que no puede hacer que funcione en una línea.
Esta es una forma de obtener el resultado deseado.
const dict = { rel: 'preload', as: 'image', type: 'image/webp' }; console.log( Object.entries(dict) .map(([k, v]) => (`${k}='${v}'`)) .join(' ') );Usa
Puedes usar reduce :
const dict = { rel: 'preload', as: 'image', type: 'image/webp' }; let result = Object.keys(dict).reduce((acc, key) => acc + `${key}=${dict[key]} ` ,''); console.log(result);Esta línea puede funcionar para usted:
const dict = { rel: 'preload', as: 'image', type: 'image/webp' }; const result = Object.entries(dict).map(item => `${item[0]} = '${item[1]}'`).join(' ') console.log(result)