Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Merge values to an array based on similar object key javascript

i have a return like this

[
{
    "tripw3": "1"
},
{
    "tripw1": "2"
},
{
    "tripw1": "3"
},
{
    "tripw2": "4"
},
{
    "tripw2": "5"
},
{
    "tripw3": "6"
},
{
    "tripw3": "7"
}]

and I want to make the above result be

[
{
 tripw3: ["1", "6", "7"],
 tripw2: ["4", "5"],
 tripw1: ["3", "2"]
}]

Until now I’m still confused to make this happen.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You cane easily acheve the result using reduce, Object.keys and forEach

const arr = [
  {
    tripw4: "1",
  },
  {
    tripw4: "2",
  },
  {
    tripw4: "3",
  },
  {
    tripw4: "4",
  },
  {
    tripw4: "5",
  },
  {
    tripw4: "6",
  },
  {
    tripw4: "7",
  },
];

const result = [arr.reduce((acc, curr) => {
  Object.keys(curr).forEach((k) => acc[k] ? acc[k].push(curr[k]) : (acc[k] = [curr[k]]));
  return acc;
}, {})];

console.log(result);
/* This is not a part of answer. It is just to give the output full height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; }
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading