@queso/pick
Version:
Creates an object composed of the picked object properties.
21 lines (19 loc) • 500 B
JavaScript
/**
* Creates an object composed of the picked `object` properties.
* @param object The source object.
* @param paths The property paths to pick.
* @category Object
* @returns A new object composed of the picked `object` properties.
* @example
const obj = { a: 1, b: 2, c: 3 }
pick(obj, 'a', 'c')
// => { a: 1, c: 3 }
*/
export default function pick(object, ...paths) {
return paths.reduce((result, key) => {
if (key in object) {
result[key] = object[key]
}
return result
}, {})
}