foop
Version:
interfaces that describe their intentions.
41 lines (39 loc) • 2.59 kB
JavaScript
var isIndexable = require('../is/indexable')
var lastIndex = require('./lastIndex')
/**
* Returns the last element of the given list or string.
*
* @func
* @memberOf fp
* @since 5.0.0-beta.2
*
* @param {*} x list to get last index of
* @return {*}
*
* @tests fp/last
*
* @ramda v0.1.4
* @category List
* @sig [a] -> a | Undefined
* @sig String -> String
*
* @see R.init, R.head, R.tail
* @extends deps/fp/lastIndex
*
* {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L507 underscore-last}
* @see {@link underscore-last}
*
* @types fp
* @tests fp/*
*
* @example
*
* last(['fi', 'fo', 'fum']); //=> 'fum'
* last([]); //=> undefined
*
* last('abc'); //=> 'c'
* last(''); //=> ''
*
*/
module.exports = function (x) { return (isIndexable(x) ? x[lastIndex(x)] : undefined); }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFzdC5qcyIsInNvdXJjZXMiOlsibGFzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0luZGV4YWJsZSA9IHJlcXVpcmUoJy4uL2lzL2luZGV4YWJsZScpXG5jb25zdCBsYXN0SW5kZXggPSByZXF1aXJlKCcuL2xhc3RJbmRleCcpXG5cbi8qKlxuICogUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSBnaXZlbiBsaXN0IG9yIHN0cmluZy5cbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIGZwXG4gKiBAc2luY2UgNS4wLjAtYmV0YS4yXG4gKlxuICogQHBhcmFtIHsqfSB4IGxpc3QgdG8gZ2V0IGxhc3QgaW5kZXggb2ZcbiAqIEByZXR1cm4geyp9XG4gKlxuICogQHRlc3RzIGZwL2xhc3RcbiAqXG4gKiBAcmFtZGEgdjAuMS40XG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyBbYV0gLT4gYSB8IFVuZGVmaW5lZFxuICogQHNpZyBTdHJpbmcgLT4gU3RyaW5nXG4gKlxuICogQHNlZSBSLmluaXQsIFIuaGVhZCwgUi50YWlsXG4gKiBAZXh0ZW5kcyBkZXBzL2ZwL2xhc3RJbmRleFxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMNTA3IHVuZGVyc2NvcmUtbGFzdH1cbiAqIEBzZWUge0BsaW5rIHVuZGVyc2NvcmUtbGFzdH1cbiAqXG4gKiBAdHlwZXMgZnBcbiAqIEB0ZXN0cyBmcC8qXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIGxhc3QoWydmaScsICdmbycsICdmdW0nXSk7IC8vPT4gJ2Z1bSdcbiAqICAgICAgbGFzdChbXSk7IC8vPT4gdW5kZWZpbmVkXG4gKlxuICogICAgICBsYXN0KCdhYmMnKTsgLy89PiAnYydcbiAqICAgICAgbGFzdCgnJyk7IC8vPT4gJydcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0geCA9PiAoaXNJbmRleGFibGUoeCkgPyB4W2xhc3RJbmRleCh4KV0gOiB1bmRlZmluZWQpXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUM5Q0EsR0FBSyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUN4QyxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUEsQ0FBQyxDQUFBLENBQUMsQUFBRyxTQUFBLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBQTsifQ==