|
Download ponytail/examples/group-by.md from smlflg/CodingAgent: direct link, hf CLI and curl.
- Browser
- Download file 937 Bytes
-
https://huggingface.co/smlflg/CodingAgent/resolve/main/ponytail/examples/group-by.md
- Command line
-
hf download hf://smlflg/CodingAgent/ponytail/examples/group-by.md
-
curl -L -o group-by.md https://huggingface.co/smlflg/CodingAgent/resolve/main/ponytail/examples/group-by.md
937 Bytes
| # Group By | |
| **Task:** "Group this array of objects by a key." | |
| ## Without Ponytail | |
| ```bash | |
| npm install lodash | |
| ``` | |
| ```js | |
| import { groupBy } from "lodash"; | |
| const byStatus = groupBy(orders, "status"); | |
| // → { pending: [...], shipped: [...], delivered: [...] } | |
| ``` | |
| Or the hand-rolled version: | |
| ```js | |
| const byStatus = orders.reduce((acc, order) => { | |
| (acc[order.status] ??= []).push(order); | |
| return acc; | |
| }, {}); | |
| ``` | |
| ## With Ponytail | |
| ```js | |
| // ponytail: Object.groupBy does this | |
| const byStatus = Object.groupBy(orders, order => order.status); | |
| // → { pending: [...], shipped: [...], delivered: [...] } | |
| ``` | |
| **1 dependency (or a reduce) → 1 built-in.** `Object.groupBy` shipped in Chrome 117, Firefox 119, Safari 17.4, Node.js 21. If you need a `Map` instead of a plain object: `Map.groupBy(orders, o => o.status)`. Check your target runtime; if you need IE11 or old Node, the `reduce` one-liner is still the right call, not lodash. | |