@queso/pick-by
Version:
Creates an object composed of the object properties for which predicate returns truthy.
27 lines (23 loc) • 629 B
JavaScript
;
/**
* Creates an object composed of the object properties for which predicate returns truthy.
* @category Object
* @param object The source object.
* @param predicate The function invoked per property.
* @returns The new object.
* @example
const obj = { a: 0, b: '', c: true, d: 'hello' }
pickBy(obj)
// => { c: true, d: 'hello' }
*/
function pickBy(object, predicate = v => v) {
return Object.keys(object).reduce((result, key) => {
const value = object[key];
if (predicate(value, key)) {
result[key] = value;
}
return result
}, {})
}
module.exports = pickBy;
pickBy.default = module.exports