Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
How to group array with multiple objects in javascript

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 ............................................................................................................................................................................................................................................................................

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

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

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!