The Object.groupBy method groups array elements into an object based on a callback function's return value. Here's how to use it.
Basic Usage#
Group by Property#
Group by Computed Value#
Group by Date#
Map.groupBy#
Aggregating After Grouping#
Nested Grouping#
Multiple Keys#
Polyfill#
Practical Examples#
Best Practices#
Usage:
✓ Use for categorization
✓ Use callback for dynamic keys
✓ Use Map.groupBy for object keys
✓ Chain with aggregation
Benefits:
✓ Cleaner than reduce
✓ Returns plain object
✓ No mutation of source
✓ Works with any iterable
Patterns:
✓ Group and count
✓ Group and sum
✓ Nested grouping
✓ Composite keys
Avoid:
✗ Modifying source array
✗ Complex key computation
✗ Assuming key order
✗ Forgetting null/undefined keys
Conclusion#
Object.groupBy simplifies grouping array elements by a key function. Use it for categorization, aggregation prep, and organizing data. For object keys that need reference equality, use Map.groupBy instead. Both methods return new collections without modifying the source array.