-1

I have an array

{
"id": 5308,
"empId": 202,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 50000
},
{
"id": 5309,
"empId": 173,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 30000
},
{
"id": 5310,
"empId": 212,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 21100
},
{
"id": 5311,
"empId": 163,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 43000
},
{
"id": 5312,
"empId": 116,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 52000
},
{
"id": 5313,
"empId": 223,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 21100
},
{
"id": 5314,
"empId": 231,
"loc": 1,
"salMonth": "1",
"salYear": "2020",
"salDate": "2020-01",
"netSal": 42217
}

I have to group this array by two colums, that is empId, salDate.

And the expected result should like:

{
  "202": {
    "2020-01": {
      "salId": xx,
      "salary": xxx
    },
    "2020-02": {
      "salId": xxx,
      "salary": xxxx
    },
    "2020-03": {
      "salId": xxx,
      "salary": xxxx
    }
  },
  "203": {
    "2020-01": {
      "salId": xx,
      "salary": xxx
    },
    "2020-02": {
      "salId": xxx,
      "salary": xxxx
    },
    "2020-03": {
      "salId": xxx,
      "salary": xxxx
    }
  },

}

Thanks Advance ............................................................................................................................................................................................................................................................................

2
  • SO is not a coding service. Please visit the help center, take the tour to see what and How to Ask. Show what you have tried and where you are stuck. When practical post a minimal reproducible example of your attempt, noting input and expected output. Commented Oct 22, 2021 at 11:01
  • I got solution by following this question. Thanks. Commented Oct 22, 2021 at 11:06

1 Answer 1

1

A simple loop could solve your problem. try this.

let modifiedData = {}
let data = [{
    "id": 5308,
    "empId": 202,
    "loc": 1,
    "salMonth": "1",
    "salYear": "2020",
    "salDate": "2020-01",
    "netSal": 50000
  },
  {
    "id": 5309,
    "empId": 173,
    "loc": 1,
    "salMonth": "1",
    "salYear": "2020",
    "salDate": "2020-01",
    "netSal": 30000
  },
  {
    "id": 5310,
    "empId": 212,
    "loc": 1,
    "salMonth": "1",
    "salYear": "2020",
    "salDate": "2020-01",
    "netSal": 21100
  }
];

//loop your data and create modifed data
data.map(d => {
  if(!modifiedData[d.empId]) { // check weather empId already exists or not
     modifiedData[d.empId] = []
  }
  modifiedData[d.empId].push({[d.salDate]:{salId: d.id, salary: d.netSal}})
})
console.log(modifiedData) // print final data

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.