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)