UNPKG

bingo-functional-js

Version:

A port of the PHP bingo-functional library

34 lines (27 loc) 612 B
const fold = require('./fold') const reverseArray = (list) => list.reverse() const reverseObject = (list) => { const keys = Object.keys(list).reverse() return fold( (obj, value) => { const result = obj result[value] = list[value] return result }, keys, {}, ) } /** * reverse function * * reverse :: [a, b] -> [b, a] * @param {(array|object)} list * @returns {(array|object)} * @example * * reverse(['foo', 'bar']) * // => ['bar', 'foo'] */ const reverse = (list) => (Array.isArray(list) ? reverseArray(list) : reverseObject(list)) module.exports = reverse