UNPKG

hof-y123

Version:

A collection of handy Higher-Order Functions (HOFs) for JavaScript arrays to simplify common tasks.

58 lines (46 loc) 1.28 kB
// 1. Sum of elements const sum = arr => arr.reduce((acc, val) => acc + val, 0); // 2. Average of elements const average = arr => arr.length === 0 ? 0 : sum(arr) / arr.length; // 3. Remove duplicates const unique = arr => [...new Set(arr)]; // 4. Find max const max = arr => Math.max(...arr); // 5. Find min const min = arr => Math.min(...arr); // 6. Group by a function (e.g. by type or even/odd) const groupBy = (arr, fn) => arr.reduce((acc, val) => { const key = fn(val); (acc[key] = acc[key] || []).push(val); return acc; }, {}); // 7. Count frequency of elements const frequency = arr => arr.reduce((acc, val) => { acc[val] = (acc[val] || 0) + 1; return acc; }, {}); // 8. Shuffle array const shuffle = arr => [...arr].sort(() => Math.random() - 0.5); // 9. Chunk into parts const chunk = (arr, size) => Array.from({ length: Math.ceil(arr.length / size) }, (_, i) => arr.slice(i * size, i * size + size) ); // 10. Flatten nested array const flatten = arr => arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val) : val), []); // Export all module.exports = { sum, average, unique, max, min, groupBy, frequency, shuffle, chunk, flatten, };