You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
927 B

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