drop.js 911 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. var baseSlice = require('../internal/baseSlice'),
  2. isIterateeCall = require('../internal/isIterateeCall');
  3. /**
  4. * Creates a slice of `array` with `n` elements dropped from the beginning.
  5. *
  6. * @static
  7. * @memberOf _
  8. * @category Array
  9. * @param {Array} array The array to query.
  10. * @param {number} [n=1] The number of elements to drop.
  11. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`.
  12. * @returns {Array} Returns the slice of `array`.
  13. * @example
  14. *
  15. * _.drop([1, 2, 3]);
  16. * // => [2, 3]
  17. *
  18. * _.drop([1, 2, 3], 2);
  19. * // => [3]
  20. *
  21. * _.drop([1, 2, 3], 5);
  22. * // => []
  23. *
  24. * _.drop([1, 2, 3], 0);
  25. * // => [1, 2, 3]
  26. */
  27. function drop(array, n, guard) {
  28. var length = array ? array.length : 0;
  29. if (!length) {
  30. return [];
  31. }
  32. if (guard ? isIterateeCall(array, n, guard) : n == null) {
  33. n = 1;
  34. }
  35. return baseSlice(array, n < 0 ? 0 : n);
  36. }
  37. module.exports = drop;