foop
Version:
interfaces that describe their intentions.
45 lines (43 loc) • 3.45 kB
JavaScript
var slice = require('../native/arraySlice')
var isString = require('../is/string')
/**
* Returns a new list or string with the elements or characters in reverse
* order.
*
* @symb ⬅️
* @memberOf fp
* @since 5.0.0-beta.5
*
* @param {Array|String} x (list) string or array to reverse
* @return {Array|String}
*
* @func
* @ramda v0.1.0
* @category List
* @sig [a] -> [a]
* @sig String -> String
*
* {@link https://stackoverflow.com/a/26610963/2855712 stack-overflow-10-ways-to-reverse-string}
* {@link https://github.com/ramda/ramda/blob/master/src/reverse.js ramda-reverse}
* @see {@link ramda-reverse}
* @see {@link stack-overflow-10-ways-to-reverse-string}
*
* @example
*
* reverse([1, 2, 3]); //=> [3, 2, 1]
* reverse([1, 2]); //=> [2, 1]
* reverse([1]); //=> [1]
* reverse([]); //=> []
*
* reverse('abc'); //=> 'cba'
* reverse('ab'); //=> 'ba'
* reverse('a'); //=> 'a'
* reverse(''); //=> ''
*
*/
module.exports = function reverse(x) {
return isString(x)
? x.split('').reverse().join('')
: slice.call(x, 0).reverse()
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZS5qcyIsInNvdXJjZXMiOlsicmV2ZXJzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzbGljZSA9IHJlcXVpcmUoJy4uL25hdGl2ZS9hcnJheVNsaWNlJylcbmNvbnN0IGlzU3RyaW5nID0gcmVxdWlyZSgnLi4vaXMvc3RyaW5nJylcblxuLyoqXG4gKiBSZXR1cm5zIGEgbmV3IGxpc3Qgb3Igc3RyaW5nIHdpdGggdGhlIGVsZW1lbnRzIG9yIGNoYXJhY3RlcnMgaW4gcmV2ZXJzZVxuICogb3JkZXIuXG4gKlxuICogQHN5bWIg4qyF77iPXG4gKiBAbWVtYmVyT2YgZnBcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjVcbiAqXG4gKiBAcGFyYW0ge0FycmF5fFN0cmluZ30geCAobGlzdCkgc3RyaW5nIG9yIGFycmF5IHRvIHJldmVyc2VcbiAqIEByZXR1cm4ge0FycmF5fFN0cmluZ31cbiAqXG4gKiBAZnVuY1xuICogQHJhbWRhIHYwLjEuMFxuICogQGNhdGVnb3J5IExpc3RcbiAqIEBzaWcgW2FdIC0+IFthXVxuICogQHNpZyBTdHJpbmcgLT4gU3RyaW5nXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yNjYxMDk2My8yODU1NzEyIHN0YWNrLW92ZXJmbG93LTEwLXdheXMtdG8tcmV2ZXJzZS1zdHJpbmd9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3JhbWRhL3JhbWRhL2Jsb2IvbWFzdGVyL3NyYy9yZXZlcnNlLmpzIHJhbWRhLXJldmVyc2V9XG4gKiBAc2VlIHtAbGluayByYW1kYS1yZXZlcnNlfVxuICogQHNlZSB7QGxpbmsgc3RhY2stb3ZlcmZsb3ctMTAtd2F5cy10by1yZXZlcnNlLXN0cmluZ31cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgcmV2ZXJzZShbMSwgMiwgM10pOyAgLy89PiBbMywgMiwgMV1cbiAqICAgICAgcmV2ZXJzZShbMSwgMl0pOyAgICAgLy89PiBbMiwgMV1cbiAqICAgICAgcmV2ZXJzZShbMV0pOyAgICAgICAgLy89PiBbMV1cbiAqICAgICAgcmV2ZXJzZShbXSk7ICAgICAgICAgLy89PiBbXVxuICpcbiAqICAgICAgcmV2ZXJzZSgnYWJjJyk7ICAgICAgLy89PiAnY2JhJ1xuICogICAgICByZXZlcnNlKCdhYicpOyAgICAgICAvLz0+ICdiYSdcbiAqICAgICAgcmV2ZXJzZSgnYScpOyAgICAgICAgLy89PiAnYSdcbiAqICAgICAgcmV2ZXJzZSgnJyk7ICAgICAgICAgLy89PiAnJ1xuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByZXZlcnNlKHgpIHtcbiAgcmV0dXJuIGlzU3RyaW5nKHgpXG4gICAgPyB4LnNwbGl0KCcnKS5yZXZlcnNlKCkuam9pbignJylcbiAgICA6IHNsaWNlLmNhbGwoeCwgMCkucmV2ZXJzZSgpXG59XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztBQUM3Q0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUN4QyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRTtFQUNuQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUM7TUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7TUFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO0NBQy9COyJ9