inRange.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var baseInRange = require('./_baseInRange'),
  2. toNumber = require('./toNumber');
  3. /**
  4. * Checks if `n` is between `start` and up to, but not including, `end`. If
  5. * `end` is not specified, it's set to `start` with `start` then set to `0`.
  6. * If `start` is greater than `end` the params are swapped to support
  7. * negative ranges.
  8. *
  9. * @static
  10. * @memberOf _
  11. * @since 3.3.0
  12. * @category Number
  13. * @param {number} number The number to check.
  14. * @param {number} [start=0] The start of the range.
  15. * @param {number} end The end of the range.
  16. * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
  17. * @see _.range, _.rangeRight
  18. * @example
  19. *
  20. * _.inRange(3, 2, 4);
  21. * // => true
  22. *
  23. * _.inRange(4, 8);
  24. * // => true
  25. *
  26. * _.inRange(4, 2);
  27. * // => false
  28. *
  29. * _.inRange(2, 2);
  30. * // => false
  31. *
  32. * _.inRange(1.2, 2);
  33. * // => true
  34. *
  35. * _.inRange(5.2, 4);
  36. * // => false
  37. *
  38. * _.inRange(-3, -2, -6);
  39. * // => true
  40. */
  41. function inRange(number, start, end) {
  42. start = toNumber(start) || 0;
  43. if (end === undefined) {
  44. end = start;
  45. start = 0;
  46. } else {
  47. end = toNumber(end) || 0;
  48. }
  49. number = toNumber(number);
  50. return baseInRange(number, start, end);
  51. }
  52. module.exports = inRange;