【发布时间】:2017-08-15 18:56:28
【问题描述】:
这是我的第一篇文章。我不喜欢在论坛上寻求帮助,但我别无选择。我花了很多天试图解决这个问题,但我没有找到任何解决方案。
我所有的问题都是从返回这个的数据库查询开始的。
{
"prod_format": "400 ml",
"prod_brand": "Marca",
"prod_image": "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": "192.168.1.45/shops/d4d4sw2.jpg"
}
},
{
"prod_price": 2.19,
"prod_shop": {
"prod_shopID": 5,
"prod_shop_name": "Tienda",
"prod_shop_image": "192.168.1.45/shops/g4hbe72.jpg"
}
}
]
}
在这种情况下,我想删除键的前缀,prod_ 和 shop_。
我不能手动执行此操作,因为这只是我使用的多个查询之一,并且此数据可能会更改,我需要一个删除这些前缀的动态函数,以便与更多前缀和更多查询一起使用。
到目前为止我一直在尝试:
- 调用自身重新映射对象内部的递归函数
数组,但它不起作用,因为
NodeJS是异步的并且会生成 永无止境的循环。 - 使用获取所有键/值的列表函数来创建新对象 使用重命名的键,但我找不到任何适用于复杂的东西 对象。
- 使用链式承诺,我不知道它有效,但我认为 这是最好的方法。
总之,我想要一个函数,如果我放置上层对象,我会得到这个代码。
{
"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"
}
}
]
}
PS:
我无法编辑原始对象,因为它来自elasticsearch,我无法编辑对象键。
先谢谢了,希望有人能帮助我。
【问题讨论】:
标签: javascript arrays json node.js javascript-objects