UNPKG

bingo-functional-js

Version:

A port of the PHP bingo-functional library

21 lines (18 loc) 397 B
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