index.ts 611 B

123456789101112131415161718192021
  1. /**
  2. * 生成指定范围的数组
  3. *
  4. * @private
  5. * @param {number} start 开始的范围.
  6. * @param {number} end 结束的范围.
  7. * @param {number} step 范围的增量 或者 减量.
  8. * @param {boolean} [fromRight] 反向.
  9. * @returns {Array} Returns 范围数组.
  10. */
  11. export function range(start: number, end: number, step: number = 1, fromRight: boolean = false): number[] {
  12. let index = -1
  13. let length = Math.max(Math.ceil((end - start) / (step || 1)), 0)
  14. const result = new Array(length)
  15. while (length--) {
  16. result[fromRight ? length : ++index] = start
  17. start += step
  18. }
  19. return result
  20. }