Tengo un objeto como este:
let data = { url: "https://test.ir/apps/:type/:id/", params: { id: "com.farsitel.bazaar", type: "xyz", }, query: { ref: "direct", l: "en", }, };Quiero reemplazar :type y :id en url con una clave equivalente a cada uno de los objetos params. ¿Cuál es la mejor solución en javascript?
Solución basada en hacer coincidir claves de params con el valor de una expresión regular de key url , seguida de una actualización de esa clave.
En la entrada: https://test.ir/apps/:type/:id/
En salida: https://test.ir/apps/xyz/com.farsitel.bazaar/
let data = { url: "https://test.ir/apps/:type/:id/", params: { id: "com.farsitel.bazaar", type: "xyz", }, query: { ref: "direct", l: "en", }, }; let new_url = data.url.replace(/:(\w+)/g, (match, key) => data.params[key] || match); data.url = new_url; console.log(data);¿Podría simplemente usar String.replace ?
const data = { url: "https://test.ir/apps/:type/:id/", params: { id: "com.farsitel.bazaar", type: "xyz", }, query: { ref: "direct", l: "en", }, } const url = data.url.replace(":type", data.params.type).replace(":id", data.params.id); console.log(url)