groupBy(['a', 'bb', 'ccc', 'dd'], s => s.length)
// β { 1: ['a'], 2: ['bb', 'dd'], 3: ['ccc'] }groupBy<T> clusters array elements by a derived key, building a Record of arrays.
Challenge: Implement groupBy<T extends object>(arr: T[], key: keyof T): Record<string, T[]>.
groupBy([{type:'a',v:1},{type:'b',v:2},{type:'a',v:3}], 'type')
// β { a: [{type:'a',v:1},{type:'a',v:3}], b: [{type:'b',v:2}] }