Tengo datos de un objeto con dos valores de subdatos, uno es una matriz de objetos y el segundo es un tipo de objeto
Solo quiero extraer un valor de cada objeto en la matriz y actualizar ese valor en su objeto principal
const payload = { data: [ { 'name': 'User One, 'id': 12345, date: '12-23-1', primary_role: { name: 'admin', id: 88888, date: '12-23-1' } }, { 'name': 'User Two', 'id': 12345, date: '12-23-1', primary_role: { name: 'developer', id: 88888, date: '12-23-1' } }, { 'name': 'User Three', 'id': 12345, date: '12-23-1', primary_role: { name: 'developer', id: 88888, date: '12-23-1' } }, { 'name': 'User Four', 'id': 12345, date: '12-23-1', primary_role: { name: 'qa', id: 88888, date: '12-23-1' } }, ], meta: { pagination: { total: 5, current: 10, previous: 2, link: 'https://example.com' } } } console.log([...payload, payload.data.primaryRole = payload.data.primary_role.name])
Por supuesto, es un enfoque incorrecto, quiero obtener el valor del nombre de primary_role y actualizar su objeto principal con este valor, como primaryRole = payload.data[primary_role.name]
quiero un dato asi
const payload = { data: [ { 'name': 'User One, 'id': 12345, date: '12-23-1', primary_role: { name: 'admin', id: 88888, date: '12-23-1' }, primaryRole: 'admin' }, { 'name': 'User Two', 'id': 12345, date: '12-23-1', primary_role: { name: 'developer', id: 88888, date: '12-23-1' }, primaryRole: 'developer' }, { 'name': 'User Three', 'id': 12345, date: '12-23-1', primary_role: { name: 'developer', id: 88888, date: '12-23-1' }, primaryRole: 'developer' }, { 'name': 'User Four', 'id': 12345, date: '12-23-1', primary_role: { name: 'qa', id: 88888, date: '12-23-1' }, primaryRole: 'qa' }, ], meta: { pagination: { total: 5, current: 10, previous: 2, link: 'https://example.com' } } }
Algún comentario sobre esto???
Use un bucle simple (tomando la libertad de usar un nombre de propiedad de destino menos ambiguo):
payload.data.forEach ( po_item => { po_item.primaryRoleName = po_item.primary_role.name; });
Para juzgar si eso tiene sentido en el contexto de su proyecto, se necesitan más datos. En términos más generales, por lo general es mejor producir datos en la forma en que se necesitan que parchearlos.
Versión completa:
const payload = { data: [ { 'name': 'User One', 'id': 12345, date: '12-23-1', primary_role: { name: 'admin', id: 88888, date: '12-23-1' } }, { 'name': 'User Two', 'id': 12345, date: '12-23-1', primary_role: { name: 'developer', id: 88888, date: '12-23-1' } }, { 'name': 'User Three', 'id': 12345, date: '12-23-1', primary_role: { name: 'developer', id: 88888, date: '12-23-1' } }, { 'name': 'User Four', 'id': 12345, date: '12-23-1', primary_role: { name: 'qa', id: 88888, date: '12-23-1' } } ] }; payload.data.forEach ( po_item => { po_item.primaryRoleName = po_item.primary_role.name; }); console.log(payload);