inRange

"Dude, suckin' at something is the first step to being sorta good at something." —Jake, "Adventure Time"

本文为 《lodash 源码阅读》 系列文章,后续内容会在 githubarrow-up-right 中发布,欢迎 star,gitbookarrow-up-right 同步更新。

依赖

import baseInRange from './.internal/baseInRange.js';

源码

/**
 * 检查 number 是否在 start 与 end 之间,但不包括 end。 如果 end 没有指定,那么 start 设置为0。 如果 start 大于 end,那么参数会交换以便支持负范围。
 *
 * @since 3.3.0
 * @category Number
 * @param {number} number 要检查的值。
 * @param {number} [start=0] 开始范围。
 * @param {number} end 结束范围。
 * @returns {boolean} 如果number在范围内 ,那么返回true,否则返回 false。
 */
function inRange(number, start, end) {
  if (end === undefined) {
    end = start;
    start = 0;
  }
  return baseInRange(+number, +start, +end);
}

原理

inRange 主要对 baseInRange 多做了一个功能,便是判断 end 是否存在,如果 end 没有指定,那么 start 设置为 0,后将参数 Number 化传递给 baseInRange 进行区间判断。

相关链接

Last updated

Was this helpful?