我需要用现有的键值重新构造JSON对象,请检查下面的JSON输入格式
{
'Demo-1': [
{
sku: 'Brisk',
count: '2',
},
{
sku: 'Pepsi Cans',
count: '2',
},
{
sku: 'Pepsi Cans',
count: '4',
}
],
'Demo-2' :{
"A":[
{
sku: 'Mountain',
count: '4',
},
{
sku: 'Pepsi Bottles',
count: '4',
}
],
"B":[
{
sku: 'Lipton Dietgreentea',
count: '2',
},
{
sku: 'Lipton Dietgreentea Mixedberry',
count: '2',
}
]
}
}在上面输入的JSON中,"Demo-1“有一个对象数组,第二个数组有两个数组对象。我想将上面的数组更改为类似于下面的结果
{
'Demo-1': {
items: [{
sku: 'Brisk',
count: '2',
},
{
sku: 'Pepsi',
count: '2',
},
{
sku: 'Pepsi',
count: '4',
}
],
mode: "Veri",
istatus: "open"
},
'Demo-2': {
"items":{
"A" :[
{
sku: 'Mountain',
count: '4',
},
{
sku: 'Pepsi Bottles',
count: '4',
}
],
"B" :[
{
sku: 'Lipton Dietgreentea',
count: '2',
},
{
sku: 'Lipton Dietgreentea Mixedberry',
count: '2',
}]
},
mode: "Doubled",
istatus: "Closed"
}
}我已经使用了下面的代码解决方案来部分实现这一点
Object.fromEntries(
Object.entries(obj).map(
([key, items]) => [key, { items, mode: "verification", status: "open" }]
)
)现在,如果对象有两个像Demo-2这样的数组对象,那么模式值应该“加倍”,请帮助我解决这个问题。
提前谢谢。
发布于 2021-10-29 06:42:40
您需要在映射函数中添加条件。
适当的条件取决于可能的items值。
如果items总是array或{ A, B } object,那么以下条件就足够了:
Object.fromEntries(
Object.entries(obj).map(
([key, items]) => [key, { items, mode: Array.isArray(items) ? 'Single' : 'Doubled', status: 'open' }]
)
)https://stackoverflow.com/questions/69764448
复制相似问题