Os cuento, tras una consulta a una base de datos obtengo lo siguiente:
Código:
Y lo que quiero es quitar los prefijos que tienen los datos originales prod_ y shop_{ "prod_format": "400 ml", "prod_brand": "Marca", "prod_image": "http://192.168.1.45/mini/1046332bb531ab3.jpg", "prod_name": "Gel de baño o ducha", "prod_pvp": 2.20, "prod_shops": [ { "prod_price": 2.29, "prod_shop": { "prod_shopID": 2, "prod_shop_name": "Tienda", "prod_shop_image": "http://192.168.1.45/shops/d4d4sw2.jpg" } }, { "prod_price": 2.19, "prod_shop": { "prod_shopID": 5, "prod_shop_name": "Tienda", "prod_shop_image": "http://192.168.1.45/shops/g4hbe72.jpg" } } ] }
No me vale hacer una equivalencia a mano, ya que estos datos no son siempre fijos para algunos productos hay datos extra, además usaría esa función para "limpiar" otras consultas obtenidas de la base de datos.
Hasta ahora he probado lo siguiente:
- Usar función recursiva -> Descartado, en otros lenguajes de programación funcionaría pero en NodeJS no, ya que es asíncrono, lo único que consigo es entrar en un bucle infinito
- Intentar buscar una función de mapeo de variable y adaptarla -> Descartado ya que soy yo, que no se como buscar eso, solo he encontrado simples forEach que listan un array o todos los elementos de un objeto (he intentado aplicar esto de forma recurrente como digo en el punto 1, y no he obtenido resultados satisfactorios)
- Usar promises, era lo mas prometedor sobre el papel pero no encuentro ninguna manera de hacer que funcione bien, estoy teniendo muchos problemas, como por ejemplo llamar a un promise desde dentro de un promise entre otros, así que muy a mi pesar -> Descartado
Por si queda alguna duda estoy buscando una función a la que yo le pase la variable de arriba, unos prefijos, [prod_ , shop_] y me devuelta esto.
Código:
PD: No, no puedo editar el nombre de las keys del original, es la información que me viene del motor de búsqueda.{ "format": "400 ml", "brand": "Marca", "image": "http://192.168.1.45/mini/1046332bb531ab3.jpg", "name": "Gel de baño o ducha", "pvp": 2.20, "shops": [ { "price": 2.29, "shop": { "shopID": 2, "name": "Tienda", "image": "http://192.168.1.45/shops/d4d4sw2.jpg" } }, { "price": 2.19, "shop": { "shopID": 5, "name": "Tienda", "image": "http://192.168.1.45/shops/g4hbe72.jpg" } } ] }
Muchas gracias de antemano, espero que alguien pueda ayudarme, un saludo.