server-json/node_modules/ramda/es/range.js
2024-11-01 08:00:42 +00:00

33 lines
No EOL
973 B
JavaScript

import _curry2 from "./internal/_curry2.js";
import _isNumber from "./internal/_isNumber.js";
/**
* Returns a list of numbers from `from` (inclusive) to `to` (exclusive).
*
* @func
* @memberOf R
* @since v0.1.0
* @category List
* @sig Number -> Number -> [Number]
* @param {Number} from The first number in the list.
* @param {Number} to One more than the last number in the list.
* @return {Array} The list of numbers in the set `[a, b)`.
* @example
*
* R.range(1, 5); //=> [1, 2, 3, 4]
* R.range(50, 53); //=> [50, 51, 52]
*/
var range = /*#__PURE__*/_curry2(function range(from, to) {
if (!(_isNumber(from) && _isNumber(to))) {
throw new TypeError('Both arguments to range must be numbers');
}
var result = Array(from < to ? to - from : 0);
var finish = from < 0 ? to + Math.abs(from) : to - from;
var idx = 0;
while (idx < finish) {
result[idx] = idx + from;
idx += 1;
}
return result;
});
export default range;