sample.js 631 B

1234567891011121314151617181920212223242526
  1. var baseRandom = require('./_baseRandom'),
  2. isArrayLike = require('./isArrayLike'),
  3. values = require('./values');
  4. /**
  5. * Gets a random element from `collection`.
  6. *
  7. * @static
  8. * @memberOf _
  9. * @since 2.0.0
  10. * @category Collection
  11. * @param {Array|Object} collection The collection to sample.
  12. * @returns {*} Returns the random element.
  13. * @example
  14. *
  15. * _.sample([1, 2, 3, 4]);
  16. * // => 2
  17. */
  18. function sample(collection) {
  19. var array = isArrayLike(collection) ? collection : values(collection),
  20. length = array.length;
  21. return length > 0 ? array[baseRandom(0, length - 1)] : undefined;
  22. }
  23. module.exports = sample;