Ayúdeme a recrear el objeto JSON recibido de la API, consulte a continuación el objeto JSON de la API a continuación es JSON de entrada
{ 'Demo-1': [ { sku: 'Brisk', count: '2', }, { sku: 'Pepsi Cans', count: '2', }, { sku: 'Pepsi Cans', count: '4', } ], 'Demo-2' : [ { sku: 'Mountain', count: '4', }, { sku: 'Pepsi Bottles', count: '4', }, { sku: 'Lipton Dietgreentea', count: '2', }, { sku: 'Lipton Dietgreentea Mixedberry', count: '2', } ] }de esto para convertir debajo del objeto JSON con claves adicionales, y reestructurar los elementos de la matriz dentro de la otra clave
El resultado debería ser como
{ 'Demo-1': { items: [{ sku: 'Brisk', count: '2', }, { sku: 'Pepsi', count: '2', }, { sku: 'Pepsi', count: '4', } ], mode: "Veri", status: "open" }, 'Demo-2': { "items": [{ sku: 'Mountain', count: '4', }, { sku: 'Pepsi Bottles', count: '4', }, { sku: 'Lipton Dietgreentea', count: '2', }, { sku: 'Lipton Dietgreentea Mixedberry', count: '2', } ], mode: "Clear", status: "Closed" } }Lo intenté en angular pero no puedo lograr el resultado, mire el código a continuación
Object.entries(_data).map((items,idx)=>{ this._newPickLists = { items[0] :{ items : items[1], mode : 'Verification', status : 'open' } } })Gracias de antemano
Usando Object.entries y Object.fromEntries , puede simplemente cambiar el valor del objeto con elementos como clave
const obj = {"Demo-1":[{"sku":"Brisk","count":"2"},{"sku":"Pepsi Cans","count":"2"},{"sku":"Pepsi Cans","count":"4"}],"Demo-2":[{"sku":"Mountain","count":"4"},{"sku":"Pepsi Bottles","count":"4"},{"sku":"Lipton Dietgreentea","count":"2"},{"sku":"Lipton Dietgreentea Mixedberry","count":"2"}]}; console.log( Object.fromEntries( Object.entries(obj).map( ([key, items]) => [key, { items, mode: "verification", status: "open" }] ) ) )Simplemente reemplace newObject con la variable en su aplicación.
const newObject = {}; for (const [key, value] of Object.entries(obj)) { newObject[key] = {}; newObject[key]["items"] = value; newObject[key].mode = "Clear"; newObject[key].status = "Closed"; } console.log(newObject);Aquí hay una solución que actualizará el objeto de datos original:
Object.keys(data).forEach((key)=> { data[key] = {items: data[key], mode: 'Veri', status: 'open' }} )