v1.0.2
An ES (JavaScript & TypeScript) module to iterate between range.
Attributes
Includes Deno configuration
Repository
Current version released
a year ago
Range Iterator (Deno)
Heat | Release - Latest | Release - Pre | |
---|---|---|---|
| | () | () |
A Deno module to iterate between range.
🔰 Begin
Deno
- Target Version: >= v1.34.0
- Require Permission: N/A
- Domain/Registry:
- Deno Land
import ... from "https://deno.land/x/range_iterator[@<Tag>]/mod.ts";
- DenoPKG
import ... from "https://denopkg.com/hugoalh-studio/range-iterator-deno[@<Tag>]/mod.ts";
- GitHub Raw [Require Tag]
import ... from "https://raw.githubusercontent.com/hugoalh-studio/range-iterator-deno/<Tag>/mod.ts";
- Pax
import ... from "https://pax.deno.dev/hugoalh-studio/range-iterator-deno[@<Tag>]/mod.ts";
- Deno Land
ℹ️ Notice: Although it is recommended to import main module with path
mod.ts
in general, it is also able to import part of the module with sub path if available, but do not import if:
- it’s file path has an underscore prefix (e.g.:
_foo.ts
,_util/bar.ts
), or- it is a benchmark or test file (e.g.:
foo.bench.ts
,foo.test.ts
), or- it’s symbol has an underscore prefix (e.g.:
export function _baz() {}
).These elements are not considered part of the public API, thus no stability is guaranteed for them.
🧩 API
function rangeIterator(start: bigint, end: bigint, step?: RangeIteratorOptions<bigint>["step"]): Generator<bigint, void, unknown>; function rangeIterator(start: number, end: number, step?: RangeIteratorOptions<number>["step"]): Generator<number, void, unknown>; function rangeIterator(start: string, end: string, step?: RangeIteratorOptions<string>["step"]): Generator<string, void, unknown>; function rangeIterator(start: bigint, end: bigint, options?: RangeIteratorOptions<bigint>): Generator<bigint, void, unknown>; function rangeIterator(start: number, end: number, options?: RangeIteratorOptions<number>): Generator<number, void, unknown>; function rangeIterator(start: string, end: string, options?: RangeIteratorOptions<string>): Generator<string, void, unknown>;
interface RangeIteratorOptions<T> { /** * Whether to exclusive end. * @default false */ endExclusive?: boolean; /** * Step of decrement/increment. * @default 1n // Big integer. * @default 1 // Number/String. */ step?: T extends bigint ? bigint : number; }
ℹ️ Notice: Documentation is included inside the script file, can view it via:
✍️ Example
import rangeIterator from "https://raw.githubusercontent.com/hugoalh-studio/range-iterator-deno/main/mod.ts"; Array.from(rangeIterator(1, 9)); //=> [1, 2, 3, 4, 5, 6, 7, 8, 9] Array.from(rangeIterator(1n, 9n, { endExclusive: true })); //=> [1n, 2n, 3n, 4n, 5n, 6n, 7n, 8n] Array.from(rangeIterator(1, 9, { step: 0.5 })); //=> [1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9] Array.from(rangeIterator("a", "z")); //=> ["a", "b", "c", ... +20 ..., "x", "y", "z"] Array.from(rangeIterator(9, 1)); //=> [9, 8, 7, 6, 5, 4, 3, 2, 1] Array.from(rangeIterator(9n, 1n, { endExclusive: true })); //=> [9n, 8n, 7n, 6n, 5n, 4n, 3n, 2n] Array.from(rangeIterator(9, 1, { step: 0.5 })); //=> [9, 8.5, 8, 7.5, 7, 6.5, 6, 5.5, 5, 4.5, 4, 3.5, 3, 2.5, 2, 1.5, 1] Array.from(rangeIterator("z", "a")); //=> ["z", "y", "x", ... +20 ..., "c", "b", "a"]