bingo-functional-js
Version:
A port of the PHP bingo-functional library
21 lines (18 loc) • 397 B
JavaScript
const fold = require('./fold')
/**
* flatten function
*
* flatten :: [[a], [b]] -> [a, b]
* @param {array} list
* @returns {array}
* @example
*
* flatten([['foo', 'bar'], ['baz', 'fooz']])
* // => ['foo', 'bar', 'baz', 'fooz']
*/
const flatten = (list) => fold(
(acc, val) => (Array.isArray(val) ? [...acc, ...flatten(val)] : [...acc, val]),
list,
[],
)
module.exports = flatten