Range Iterator (Deno)
Heat | Release - Latest | Release - Pre | |
---|---|---|---|
| | () | () |
A Deno module to iterate between range.
🔗 Other Edition:
📓 Documentation
Getting Started
- Deno >= v1.34.0
/* Either */
import { ... } from "<URL>";// Named Import
import * as rangeIterator from "<URL>";// Namespace Import
import rangeIterator from "<URL>";// Default Import (Function `rangeIterator`)
Domain / Registry | URL |
---|---|
Deno Land | https://deno.land/x/range_iterator[@<Tag>]/mod.ts |
DenoPKG | https://denopkg.com/hugoalh-studio/range-iterator-deno[@<Tag>]/mod.ts |
GitHub Raw * | https://raw.githubusercontent.com/hugoalh-studio/range-iterator-deno/<Tag>/mod.ts |
Pax | https://pax.deno.dev/hugoalh-studio/range-iterator-deno[@<Tag>]/mod.ts |
*: Must provide a tag.
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; }
Example
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"]