How to use the pick function from ramda
Find comprehensive JavaScript ramda.pick code examples handpicked from public code repositorys.
ramda.pick is a function that creates a new object from a source object, including only the specified properties in the new object, allowing you to select only the properties you need.
71 72 73 74 75 76 77 78 79 80
}) } // Get values for keys const visibleKeyIds = visibleKeys.map(prop('id')) const visibleValues = pick(visibleKeyIds, tags) const keysToSend = visibleKeys.map((key) => { return assoc('value', visibleValues[key.id], key) })
+ 7 other calls in file
20 21 22 23 24 25 26 27 28 29
const updateHeaderWithUser = R.compose( R.unnest, R.adjust(0, getUserHeader), R.values, R.pick(['user', 'header']) ); const coerceToArray = R.cond([ [R.is(String), v => [v]],
+ 3 other calls in file
How does ramda.pick work?
ramda.pick
is a function provided by the Ramda library that creates a new object from a source object, including only the specified properties in the new object.
When ramda.pick
is called with an array of property names as its first argument and an object as its second argument, it creates a new object that includes only the specified properties from the source object.
If a property in the array does not exist in the source object, it is omitted from the new object. If the source object contains properties that are not included in the array, they are also omitted from the new object.
ramda.pick
can be useful for selecting only the properties you need from an object, for example, to simplify an object before sending it over a network or to create a new object that contains only the properties you're interested in.
24 25 26 27 28 29 30 31 32 33 34 35
const buildOtData = userType => JSON.stringify({ userType }); const sortByCreatedAt = R.sortWith([R.ascend(R.prop('createdAt'))]); const filterByStatus = status => R.find(R.propEq('status', status)); const getImages = R.pick(['startImage', 'endImage']); /** Exports */ /**
GitHub: kuychaco/github-cred
![kuychaco profile picture](/kuychaco.png?size=40)
95 96 97 98 99 100 101 102 103 104
var isNotNil = R.compose(R.not, R.isNil); var pickTimestamps = R.compose( R.filter(isNotNil), R.values, R.pick(['createdAt', 'modifiedAt', 'mergedAt', 'closedAt']) ); function convertTimestampToDate(timestamp) { return new Date(timestamp); }
Ai Example
1 2 3 4 5 6 7 8 9 10 11 12
const R = require("ramda"); const user = { id: 123, name: "John Doe", email: "john.doe@example.com", age: 35, }; const newUser = R.pick(["id", "name", "email"], user); console.log(newUser);
In this example, we're using require to load the Ramda library and get a reference to the R.pick function. We're then defining an object called user that contains various properties, including id, name, email, and age. We're using R.pick to create a new object called newUser that includes only the id, name, and email properties from the user object. Finally, we're using console.log to output the newUser object. When we run this code, we'll get the following output: bash Copy code
45 46 47 48 49 50 51 52 53 54 55 56
) // fromObject :: Object -> Link const fromObject = R.compose( concat(defaults), R.pick(R.keys(defaults)) ) // fromString :: String -> Link const fromString = R.compose(
GitHub: josmardias/graphql-study
28 29 30 31 32 33 34 35 36 37 38 39
.whereIn('productId', ids) .select('productId') .select(options.fields || '*') return query.then(rows => ids.map(id => rows.filter(row => row.productId === id).map(row => pick(options.fields, row))), ) } module.exports.getProductsByStoresIds = (ids, options = {}) => {
+ 3 other calls in file
298 299 300 301 302 303 304 305 306 307
var newMessages = R.mapObjIndexed(function (message, key) { return _objectSpread({ translation: _this.config.sourceLocale === locale ? message.message || key : "" }, message); }, R.pick(newKeys, nextCatalog)); // Merge translations from previous catalog var mergedMessages = mergeKeys.map(function (key) { var updateFromDefaults = _this.config.sourceLocale === locale && (prevCatalog[key].translation === prevCatalog[key].message || options.overwrite); var translation = updateFromDefaults ? nextCatalog[key].message : prevCatalog[key].translation;
383 384 385 386 387 388 389 390 391 392
offerID = _ref24.offerID, stars = _ref24.stars; return { hotelID: id, offerID: offerID, position: R.pick(['lat', 'lng'], location), stars: stars, zoom: location.zoom }; }, R.always(null))), prices));
+ 41 other calls in file
1 2 3 4 5 6 7 8 9 10 11 12 13
const obj = { a : 1, b : 2, c : 3, d : 4 } const pick = R.pick(['a', 'd']); //=> {a: 1, d: 4} console.log('pick', pick(obj)); const pick2 = R.pick(['a', 'e', 'f']); //=> {a: 1} console.log('pick2', pick2(obj)); // if not present, it returns nothing
+ 263 other calls in file
204 205 206 207 208 209 210 211 212 213
let tags = prop('tags', currentProfile) // Pick tags that are still in the database const tagsInDB = await conn('profile_keys').select('id').whereIn('id', keys(tags)) tags = pick(map(prop('id'), tagsInDB), tags) // Add the attribute values attributeValues.forEach(tagPair => { if (tagPair.key_id) {
11 12 13 14 15 16 17 18 19 20
[activePageSelector, selectedActionsIdsSelector], (activePage, selectedActionsId) => { const objects = { ...activePage.objects }; let lines = []; if (selectedActionsId.length) { let selectedObject = pick(selectedActionsId, objects); const selectedOjectKey = pipe( keys, head )(selectedObject);
+ 8 other calls in file
11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221
* @return {Object} A new object with only properties from `names` on it. * @see R.omit, R.props * @example * * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4} * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1} */ var pick =
+ 15 other calls in file
GitHub: areca/misc
3330 3331 3332 3333 3334 3335 3336 3337 3338 3339
* @param {Object} obj The object to copy from * @return {Object} A new object with only properties from `names` on it. * @see R.omit, R.props * @example * * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4} * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1} */ var pick = _curry2(function pick(names, obj) { var result = {};
+ 75 other calls in file
GitHub: TourConnect/ti2-xola
24 25 26 27 28 29 30 31 32 33 34 35
'X-API-VERSION': '2020-05-04', 'Content-Type': 'application/json', }); const axiosSafeRequest = R.pick(['headers', 'method', 'url', 'data']); const axiosSafeResponse = response => { const retVal = R.pick(['data', 'status', 'statusText', 'headers', 'request'], response); retVal.request = axiosSafeRequest(retVal.request); return retVal;
67 68 69 70 71 72 73 74 75 76 77
if (R.isNil(x)) return false; const num = new Decimal(x); return num.isPositive(0); }; const rounding = R.pick([ 'ROUND_UP', 'ROUND_DOWN', 'ROUND_CEIL', 'ROUND_FLOOR',
GitHub: avanzu/node-packages
4 5 6 7 8 9 10 11 12 13 14
} const makeError = (reason) => new Error(`${reason}`) const toError = when(complement(is(Error)), makeError) const descriptionOrMessage = either( pick(['message', 'errors', 'data']), path(['props', 'description']) ) const conditionOf = pathOr('', ['props', 'condition']) const statusOf = propOr(500, 'code')
109 110 111 112 113 114 115 116 117
recordToRedirection, print(({ name }) => `Adding redirection for ${name}`), )); const removeRedirection = lazyTask(R.compose( cpanel.redirection.remove, R.pick(['domain']), recordToRedirection, print(({ name }) => `Deleting redirection for ${name}`), ));
ramda.clone is the most popular function in ramda (30311 examples)