Bring max data record with respect to a filter in react

Viewed 95

I have a JSON object where application can be submitted by any user and can be actioned by any user. Once the app is approved, I need to show max dated "Proposed" and max dated "Approved". My JSON object is

var histData = [{
     "EXECUTION_STATE_CODE":"PROPOSED",
     "EXECUTION_BY":"User1",
     "EVENT_ID":4893664,
     "CREATED_ON":"2020-09-25T18:57:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"REJECTED",
     "EXECUTION_BY":"ADMINUser1",
     "EVENT_ID":4893665,
     "CREATED_ON":"2020-09-25T19:57:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"MODIFIED",
     "EXECUTION_BY":"User12",
     "EVENT_ID":4893669,
     "CREATED_ON":"2020-09-25T20:12:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"PROPOSED",
     "EXECUTION_BY":"User12",
     "EVENT_ID":4893670,
     "CREATED_ON":"2020-09-25T20:32:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"APPROVED",
     "EXECUTION_BY":"ADMINUser22",
     "EVENT_ID":4893672,
     "CREATED_ON":"2020-09-25T18:57:33.000Z",
    }];

Code I have tried is as below but not working.

let var1 = new Date(Math.max.apply(null, histData.map(function(e) {
  console.log("object", e)
  if(e.EXECUTION_STATE_CODE==="PROPOSED"){

  return e.EXECUTED_ON;
}

Outcome expected is

Application 
Proposer : User12 
Approved : AdminUser22

Please help

1 Answers

Considering you're having array of objects , I am naming it histData

var histData = [{
     "EXECUTION_STATE_CODE":"PROPOSED",
     "EXECUTION_BY":"User1",
     "EVENT_ID":4893664,
     "CREATED_ON":"2020-09-25T18:57:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"REJECTED",
     "EXECUTION_BY":"ADMINUser1",
     "EVENT_ID":4893665,
     "CREATED_ON":"2020-09-25T19:57:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"MODIFIED",
     "EXECUTION_BY":"User12",
     "EVENT_ID":4893669,
     "CREATED_ON":"2020-09-25T20:12:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"PROPOSED",
     "EXECUTION_BY":"User12",
     "EVENT_ID":4893670,
     "CREATED_ON":"2020-09-25T20:32:33.000Z",
    },
    {
     "EXECUTION_STATE_CODE":"APPROVED",
     "EXECUTION_BY":"ADMINUser22",
     "EVENT_ID":4893672,
     "CREATED_ON":"2020-09-25T18:57:33.000Z",
    }];
 


var maxPropsed = histData.filter(h => h.EXECUTION_STATE_CODE==="PROPOSED").reduce((a, b) => {
    return new Date(a.CREATED_ON) > new Date(b.CREATED_ON) ? a : b;
 },{}).EXECUTION_BY;

var maxApproved = histData.filter(h => h.EXECUTION_STATE_CODE==="APPROVED").reduce((a, b) => {
    return new Date(a.CREATED_ON) > new Date(b.CREATED_ON) ? a : b;
 },{}).EXECUTION_BY;
 
 
 

    var histData = [{
         "EXECUTION_STATE_CODE":"PROPOSED",
         "EXECUTION_BY":"User1",
         "EVENT_ID":4893664,
         "CREATED_ON":"2020-09-25T18:57:33.000Z",
        },
        {
         "EXECUTION_STATE_CODE":"REJECTED",
         "EXECUTION_BY":"ADMINUser1",
         "EVENT_ID":4893665,
         "CREATED_ON":"2020-09-25T19:57:33.000Z",
        },
        {
         "EXECUTION_STATE_CODE":"MODIFIED",
         "EXECUTION_BY":"User12",
         "EVENT_ID":4893669,
         "CREATED_ON":"2020-09-25T20:12:33.000Z",
        },
        {
         "EXECUTION_STATE_CODE":"PROPOSED",
         "EXECUTION_BY":"User12",
         "EVENT_ID":4893670,
         "CREATED_ON":"2020-09-25T20:32:33.000Z",
        },
        {
         "EXECUTION_STATE_CODE":"APPROVED",
         "EXECUTION_BY":"ADMINUser22",
         "EVENT_ID":4893672,
         "CREATED_ON":"2020-09-25T18:57:33.000Z",
        }];
     
 

    var maxPropsed = histData.filter(h => h.EXECUTION_STATE_CODE==="PROPOSED").reduce((a, b) => {
        return new Date(a.CREATED_ON) > new Date(b.CREATED_ON) ? a : b;
     },{}).EXECUTION_BY;
    
    var maxApproved = histData.filter(h => h.EXECUTION_STATE_CODE==="APPROVED").reduce((a, b) => {
        return new Date(a.CREATED_ON) > new Date(b.CREATED_ON) ? a : b;
     },{}).EXECUTION_BY;
     
     
     console.log("maxPropsed: ", maxPropsed);
     
     console.log("maxApproved:",  maxApproved);
     
     
     

Related