0

So I have an array of objects

const array = [
    {id: 1, name: "laptop", quality: "good"},
    {id: 2, name: "pc", quality: "good"},
    {id: 3, name: "laptop", quality: "bad"},
    {id: 4, name: "pc", quality: "bad"},
]

How do i group it to look like this?

const result = {
    pc: [
    { id: 2, quality: "good"},
    { id: 4, quality: "bad"}
    ],
    laptop: [
    { id: 1, quality: "good"},
    { id: 3, quality: "bad"}
    ]
    }
  • See this: https://stackoverflow.com/questions/40774697/how-to-group-an-array-of-objects-by-key – aerial Dec 09 '21 at 11:02

1 Answers1

0

const array = [
    {id: 1, name: "laptop", quality: "good"},
    {id: 2, name: "pc", quality: "good"},
    {id: 3, name: "laptop", quality: "bad"},
    {id: 4, name: "pc", quality: "bad"},
]
const grouped = {};
for (const { name, ...rest } of array) {
  if (!(name in grouped)) grouped[name] = [];
  grouped[name].push(rest);
}
console.log(grouped);
Nino Filiu
  • 12,893
  • 9
  • 48
  • 65