Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2017, 18:36
markus18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Renombrar keys de varible

Buenas a todos, no me gusta preguntar en los foros pero no me queda otra, llevo unos días ofuscado con este tema y espero que me podáis ayudar o arrojar un rallo de luz.

Os cuento, tras una consulta a una base de datos obtengo lo siguiente:

Código:
{
    "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"
        }
      }
    ] 
}
Y lo que quiero es quitar los prefijos que tienen los datos originales prod_ y shop_

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:
  1. 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
  2. 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)
  3. 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:
{
    "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"
        }
      }
    ] 
}
PD: No, no puedo editar el nombre de las keys del original, es la información que me viene del motor de búsqueda.


Muchas gracias de antemano, espero que alguien pueda ayudarme, un saludo.