What i mean is, imagine i have this data
const data = [
{ name: 'Apple', category: 'fruit' },
{ name: 'Orange', category: 'fruit' },
{ name: 'Banana', category: 'fruit' },
{ name: 'Milk', category: 'drink' },
{ name: 'Juice', category: 'drink' },
];
What i want is to show unique categories and show number of same items
[
{ count: 3, category: 'fruit' },
{ count: 2, category: 'drink' },
]
>Solution :
One Solution is leveraging JS Set to find out unique category and use it to get the count.
const data = [
{ name: 'Apple', category: 'fruit' },
{ name: 'Orange', category: 'fruit' },
{ name: 'Banana', category: 'fruit' },
{ name: 'Milk', category: 'drink' },
{ name: 'Juice', category: 'drink' },
];
const categories = new Set();
data.forEach((item) => {
categories.add(item.category);
})
const result = [];
categories.forEach((category) => {
const val = data.filter((item) => item.category === category);
result.push({count: val.length, category})
})
console.log(result);