Tengo una matriz de tipo múltiple, por ejemplo , tiempo de entrada o de salida , interrupción, interrupción, etc. aquí está la lista
const data = [ { , entryDateTime : '02:28' , activityTypeId : 'Time In' , comments : 'dgdfgdfg' , isLeave : '' } , { timeSheetDetailActivityId : 0 , timeSheetDailyActivityId : 0 , entryDateTime : '03:28' , activityTypeId : 'Time Out' , comments : '2323' , isLeave : '' } , { , entryDateTime : '04:28' , activityTypeId : 'Break In' , comments : '2323' , isLeave : '' } , { timeSheetDetailActivityId : 0 , timeSheetDailyActivityId : 0 , entryDateTime : '05:28' , activityTypeId : 'Break Out' , comments : '2323' , isLeave : '' } , { , entryDateTime : '06:28' , activityTypeId : 'Time In' , comments : '2323' , isLeave : '' } , { , entryDateTime : '07:28' , activityTypeId : 'Time Out' , comments : '232323' , isLeave : '' } ]quiero que la lista anterior me guste esto
[ { , Time In : '02:28' , Time Out : '03:28' , Break In : '02:28' , Break Out : '03:28' } , { , Time In : '06:28' , Time Out : '08:28' , Break In : '02:28' , Break Out : '03:28' } ]¿Como es posible?
Estaré completamente agradecido a todos. Estoy atascado desde hace 2 días. Por favor, ayúdenme o dediquen algo de tiempo. Gracias por adelantado.
Claro, pan comido.
Cree un objeto que realice un seguimiento de sus datos por ID de actividad y luego léalo.
const groupedData = {}; data.forEach(({ timeSheetDailyActivityId, activityTypeId, entryDateTime }) => { // Retrieve group object from `groupedData`, // initialize one (assigning it back) if it doesn't yet exist. const group = groupedData[timeSheetDailyActivityId] || (groupedData[timeSheetDailyActivityId] = { timeSheetDailyActivityId }); // Add the activity->datetime mapping to the group. group[activityTypeId] = entryDateTime; }); // Since `groupedData` is an object and we want an array, use `Object.values`. console.log(Object.values(groupedData)); Esto se imprime, por ejemplo (después de cambiar un poco los datos de entrada del ejemplo para que haya varios dailyId ):
[ { timeSheetDailyActivityId: 0, 'Time In': '02:28', 'Time Out': '03:28', 'Break In': '04:28', 'Break Out': '05:28' }, { timeSheetDailyActivityId: 1, 'Time In': '06:28', 'Time Out': '07:28' } ]