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
  • 16,660
  • 11
  • 54
  • 84