pick.js 772 B

12345678910111213141516171819202122232425262728
  1. var arrayMap = require('./_arrayMap'),
  2. baseFlatten = require('./_baseFlatten'),
  3. basePick = require('./_basePick'),
  4. rest = require('./rest'),
  5. toKey = require('./_toKey');
  6. /**
  7. * Creates an object composed of the picked `object` properties.
  8. *
  9. * @static
  10. * @since 0.1.0
  11. * @memberOf _
  12. * @category Object
  13. * @param {Object} object The source object.
  14. * @param {...(string|string[])} [props] The property identifiers to pick.
  15. * @returns {Object} Returns the new object.
  16. * @example
  17. *
  18. * var object = { 'a': 1, 'b': '2', 'c': 3 };
  19. *
  20. * _.pick(object, ['a', 'c']);
  21. * // => { 'a': 1, 'c': 3 }
  22. */
  23. var pick = rest(function(object, props) {
  24. return object == null ? {} : basePick(object, arrayMap(baseFlatten(props, 1), toKey));
  25. });
  26. module.exports = pick;