Range Iterator (Deno)
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"]