Array Utilities
Quick Reference
- chunk
- compact
- contains
- countBy
- difference
- drop
- dropLast
- filterMap
- first
- flatten
- groupBy
- intersection
- indexBy
- last
- partition
- replace
- rotate
- sample
- search
- sort
- take
- takeLast
- toggle
- union
- uniq
- unzip
- zip
Common Patterns
ts
import { chunk, compact, filterMap, groupBy, indexBy, partition, sort, toggle, uniq, zip } from '@vielzeug/toolkit';
const raw = [1, 2, 2, 3, 4];
const deduped = uniq(raw); // [1, 2, 3, 4]
const compacted = compact([0, 1, null, 2, undefined, 3]); // [1, 2, 3]
const mapped = filterMap(deduped, (n) => n * 2); // [2, 4, 6, 8]
const filtered = filterMap(deduped, (n) => (n > 2 ? n * 2 : undefined)); // [6, 8]
const pages = chunk(mapped, 2); // [[2,4], [6,8]]
const users = [
{ id: 1, role: 'admin', name: 'Alice' },
{ id: 2, role: 'user', name: 'Bob' },
{ id: 3, role: 'user', name: 'Chris' },
];
const byRole = groupBy(users, (u) => u.role);
const byId = indexBy(users, (u) => u.id);
const sorted = sort(users, { role: 'asc', name: 'asc' });
const tags = toggle(['ts', 'vite'], 'ts'); // ['vite']
const [admins, members] = partition(users, (u) => u.role === 'admin');
const paired = zip(['a', 'b'], [1, 2]); // [['a', 1], ['b', 2]]
console.log(byRole, byId, pages, sorted, tags, compacted, admins, members, paired);