UNPKG

foop

Version:

interfaces that describe their intentions.

44 lines (41 loc) 3.67 kB
var prop = require('../../fp/prop') var curry = require('../../fp/curry') var map = require('./_map') /** * Returns a new list by plucking the same named property off all objects in * the list supplied. * * `pluck` will work on * any [functor](https://github.com/fantasyland/fantasy-land#functor) in * addition to arrays, as it is equivalent to `map(prop(k), f)`. * @since 5.0.0-beta.6 * @memberOf loop * * @func * @fork v0.1.0 * @category List * @sig Functor f => k -> f {k: v} -> f v * * @param {Number|String} path The key name to pluck off of each object. * @param {Array} functorList The array or functor to consider. * @return {Array} The list of values for the given key. * * @see fp/props * {@link https://github.com/ramda/ramda/blob/master/src/pluck.js ramda-pluck} * @see {@link ramda-pluck} * * @symb pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5] * @symb pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5] * * @example * * pluck('a')([{a: 1}, {a: 2}]); //=> [1, 2] * pluck(0)([[1, 2], [3, 4]]); //=> [1, 3] * pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5} * */ function _pluck(path, functorList) { return map(prop(path), functorList) } module.exports = curry(2, _pluck) //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Y2suanMiLCJzb3VyY2VzIjpbInBsdWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHByb3AgPSByZXF1aXJlKCcuLi8uLi9mcC9wcm9wJylcbmNvbnN0IGN1cnJ5ID0gcmVxdWlyZSgnLi4vLi4vZnAvY3VycnknKVxuY29uc3QgbWFwID0gcmVxdWlyZSgnLi9fbWFwJylcblxuLyoqXG4gKiBSZXR1cm5zIGEgbmV3IGxpc3QgYnkgcGx1Y2tpbmcgdGhlIHNhbWUgbmFtZWQgcHJvcGVydHkgb2ZmIGFsbCBvYmplY3RzIGluXG4gKiB0aGUgbGlzdCBzdXBwbGllZC5cbiAqXG4gKiBgcGx1Y2tgIHdpbGwgd29yayBvblxuICogYW55IFtmdW5jdG9yXShodHRwczovL2dpdGh1Yi5jb20vZmFudGFzeWxhbmQvZmFudGFzeS1sYW5kI2Z1bmN0b3IpIGluXG4gKiBhZGRpdGlvbiB0byBhcnJheXMsIGFzIGl0IGlzIGVxdWl2YWxlbnQgdG8gYG1hcChwcm9wKGspLCBmKWAuXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAbWVtYmVyT2YgbG9vcFxuICpcbiAqIEBmdW5jXG4gKiBAZm9yayB2MC4xLjBcbiAqIEBjYXRlZ29yeSBMaXN0XG4gKiBAc2lnIEZ1bmN0b3IgZiA9PiBrIC0+IGYge2s6IHZ9IC0+IGYgdlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfFN0cmluZ30gcGF0aCBUaGUga2V5IG5hbWUgdG8gcGx1Y2sgb2ZmIG9mIGVhY2ggb2JqZWN0LlxuICogQHBhcmFtIHtBcnJheX0gZnVuY3Rvckxpc3QgVGhlIGFycmF5IG9yIGZ1bmN0b3IgdG8gY29uc2lkZXIuXG4gKiBAcmV0dXJuIHtBcnJheX0gVGhlIGxpc3Qgb2YgdmFsdWVzIGZvciB0aGUgZ2l2ZW4ga2V5LlxuICpcbiAqIEBzZWUgZnAvcHJvcHNcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcmFtZGEvcmFtZGEvYmxvYi9tYXN0ZXIvc3JjL3BsdWNrLmpzIHJhbWRhLXBsdWNrfVxuICogQHNlZSB7QGxpbmsgcmFtZGEtcGx1Y2t9XG4gKlxuICogQHN5bWIgcGx1Y2soJ3gnLCBbe3g6IDEsIHk6IDJ9LCB7eDogMywgeTogNH0sIHt4OiA1LCB5OiA2fV0pID0gWzEsIDMsIDVdXG4gKiBAc3ltYiBwbHVjaygwLCBbWzEsIDJdLCBbMywgNF0sIFs1LCA2XV0pID0gWzEsIDMsIDVdXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIHBsdWNrKCdhJykoW3thOiAxfSwge2E6IDJ9XSk7IC8vPT4gWzEsIDJdXG4gKiAgICAgIHBsdWNrKDApKFtbMSwgMl0sIFszLCA0XV0pOyAgIC8vPT4gWzEsIDNdXG4gKiAgICAgIHBsdWNrKCd2YWwnLCB7YToge3ZhbDogM30sIGI6IHt2YWw6IDV9fSk7IC8vPT4ge2E6IDMsIGI6IDV9XG4gKlxuICovXG5mdW5jdGlvbiBfcGx1Y2socGF0aCwgZnVuY3Rvckxpc3QpIHtcbiAgcmV0dXJuIG1hcChwcm9wKHBhdGgpLCBmdW5jdG9yTGlzdClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjdXJyeSgyLCBfcGx1Y2spXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7QUFDckNBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0FBQ3ZDQSxHQUFLLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUM3QixTQUFTLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0VBQ2pDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLENBQUM7Q0FDcEM7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQzsifQ==