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

239
Views
JS merge objects as below out

Need help to get output from input JS merge objects as below out

const input = {
    "data1": [
        {
            "name": "name1",
            "type": "data1",
            "count": 7,
        },
        {
            "name": "name2",
            "type": "data1",
            "count": 3,
        },
        {
            "name": "name4",
            "type": "data1",
            "count": 1,
        }
    ],
    "data2": [
        {
            "name": "name1",
            "type": "data2",
            "count": 3
        },
        {
            "name": "name2",
            "type": "machine",
            "count": 4
        },
    ],
    "data3": [
        {
            "name": "name1",
            "type": "data3",
            "count": 9
        },
        {
            "name": "name2",
            "type": "data3",
            "count": 1
        },
        {
            "name": "name3",
            "type": "data3",
            "count": 5
        },
        {
            "name": "name4",
            "type": "data3",
            "count": 2
        }
    ]
}

const output = [
    {
        "name": "name1",
        "data1": 7,
        "data2": 3,
        "data3": 9
    },
    {
        "name": "name2",
        "data1": 3,
        "data2": 4,
        "data3": 1
    },
    {
        "name": "name3",
        "data1": 0,
        "data2": 0,
        "data3": 5
    },
    {
        "name": "name4",
        "data1": 1,
        "data2": 0,
        "data3": 2
    },
]
about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

I hope I understood your meaning correctly

const input = {
     "data1": [
          {
               "name": "name1",
               "type": "data1",
               "count": 7,
          },
          {
               "name": "name2",
               "type": "data1",
               "count": 3,
          },
          {
               "name": "name4",
               "type": "data1",
               "count": 1,
          }
     ],
     "data2": [
          {
               "name": "name1",
               "type": "data2",
               "count": 3
          },
          {
               "name": "name2",
               "type": "machine",
               "count": 4
          },
     ],
     "data3": [
          {
               "name": "name1",
               "type": "data3",
               "count": 9
          },
          {
               "name": "name2",
               "type": "data3",
               "count": 1
          },
          {
               "name": "name3",
               "type": "data3",
               "count": 5
          },
          {
               "name": "name4",
               "type": "data3",
               "count": 2
          }
     ]
}

const concatObj = []

for (const object in input) {
     if (Array.isArray(input[object]) === true) {
          input[object].map(x => {
               concatObj.push(x)
          })
     }
}
console.log(concatObj);

about 4 years ago · Santiago Gelvez Report

0

you can do something like this

const transform = data => Object.values(Object.entries(data)
 .reduce((res, [type, data]) => {
   data.forEach(({name, count}) => {
     res[name] = Object.assign({}, res[name] || {name}, {[type]: count})
   })
   
   return res
 }, {}))




const input = {
  "data1": [{
      "name": "name1",
      "type": "data1",
      "count": 7,
    },
    {
      "name": "name2",
      "type": "data1",
      "count": 3,
    },
    {
      "name": "name4",
      "type": "data1",
      "count": 1,
    }
  ],
  "data2": [{
      "name": "name1",
      "type": "data2",
      "count": 3
    },
    {
      "name": "name2",
      "type": "machine",
      "count": 4
    },
  ],
  "data3": [{
      "name": "name1",
      "type": "data3",
      "count": 9
    },
    {
      "name": "name2",
      "type": "data3",
      "count": 1
    },
    {
      "name": "name3",
      "type": "data3",
      "count": 5
    },
    {
      "name": "name4",
      "type": "data3",
      "count": 2
    }
  ]
}

console.log(transform(input))

about 4 years ago · Santiago Gelvez 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!