Javascript 如何将对象重新构造为特定格式的对象数组?
我有一个我想要重组的对象,如下所示。所需输出中的Javascript 如何将对象重新构造为特定格式的对象数组?,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我有一个我想要重组的对象,如下所示。所需输出中的IngriId只是Date。现在()我正在努力重新安排它,这对我来说似乎是不可能的。这可以用javascript完成吗,因为我对它非常陌生,而且我发现它很难实现 输入: const Shopping = { "meatsOutput": [ { "val": "Chicken breast" } ], "spices
IngriId
只是Date。现在()
我正在努力重新安排它,这对我来说似乎是不可能的。这可以用javascript完成吗,因为我对它非常陌生,而且我发现它很难实现
输入:
const Shopping = {
"meatsOutput": [
{
"val": "Chicken breast"
}
],
"spicesOutput": [
{
"amount": "½ tsp",
"val": "paprika"
}
],
"dairyOutput": [
{
"amount": "1/2 Cup",
"val": "yogurt"
},
{
"amount": "1/2 teaspoon",
"val": "heavy cream"
}
]
}
期望输出:
const ShoppingList = [
{
"data": [{
"value": "Chicken breast",
"ingrId": "202237423fm16787",
}],
"name": "meatsOutput",
},
{
"data": [{
"amount": "½ tsp",
"value": "paprika",
"ingrId": "20223742381r787",
}],
"name": "spicesOutput",
},
{
"data": [{
"amount": "1/2 Cup",
"value": "yogurt",
"ingrId": "202237423816787",
}, ],
"name": "dairyOutput",
}
]
使用
Object.entries
,可以生成[键,值]
对数组,然后使用array.prototype.map
,可以将该数组更改为所需的结果
const输入={
“肉汤”:[{
“val”:“鸡胸肉”
}],
“香料汤”:[{
“金额”:“½茶匙”,
“val”:“红辣椒”
}],
“奶牛场产量”:[{
“金额”:“1/2杯”,
“val”:“酸奶”
},
{
“量”:“1/2茶匙”,
“val”:“重奶油”
}
]
};
const result=Object.entries(input.map)([key,value])=>({
姓名:key,,
数据:value.map((项目)=>({
…项目,
英格丽德:日期。现在()
}))
}));
控制台日志(结果)
“这可以用javascript实现吗”-是的。ingrId
来自哪里?@TKoL-正如OP-justDate.现在()
当有两种成分时,dairyOutput
的输出情况是什么?@LeGEC,不要提醒我。我去哥德堡的航班取消了。嗨,非常感谢你的回答。如果输入被包装在一个数组中,我将如何处理它?如果input
是数组,您可以这样做<代码>常量结果=输入.map((项)=>对象.entries(项)…相同代码>