JSFiddle - React, Tailwind, and code Playground
by Pasit R
Babel + JSX
const data = [{
category: 'press',
title: 'foo'
}, {
category: 'blog',
title: 'bar'
}, {
category: 'blog',
title: 'another bar'
}]
const groupBy = (data, key) => Object
.entries(data.reduce((r, o) => ((r[o[key]] ??= []).push(o), r), {}))
.map(([k, data]) => ({ [key]: k, data}))
const results = groupBy(data, 'category')
console.log(results)