Necesito reestructurar el objeto JSON con valores clave existentes, verifique a continuación el formato de entrada de 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', } ] } }
En el JSON de entrada anterior, el "Demo-1" tiene una sola matriz de objetos y el segundo tiene dos objetos de matriz. Me gustaría cambiar la matriz anterior, como a continuación Resultado
{ '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" } }
Ya estoy usando la solución de código a continuación para lograr esto parcialmente
Object.fromEntries( Object.entries(obj).map( ([key, items]) => [key, { items, mode: "verification", status: "open" }] ) )
Ahora, si el objeto tiene dos objetos de matriz como Demo-2, el valor del modo debe ser "Duplicado", por favor ayúdenme a resolver esto.
Gracias por adelantado.
Debe agregar una condición a su función de mapeo.
La condición adecuada depende de los posibles valores de los items
.
Si items
siempre son una array
o { A, B } object
, la siguiente condición es suficiente:
Object.fromEntries( Object.entries(obj).map( ([key, items]) => [key, { items, mode: Array.isArray(items) ? 'Single' : 'Doubled', status: 'open' }] ) )