The end date of the period, exclusive.
The amount to increment the dates in the range.
The number of units of increment. Duplicates the information in interval for convenience and to avoid recomputing.
The starting date of the period.
The units of increment. Duplicates the information in interval for convenience and to avoid recomputing.
Get the length of this CalendarPeriod as a CalendarLength.
Iterate over the range by the increment. Returns an enhanced iterator that allows many array-like
operations such as map
and filter
.
Return all of the values from this generator as an array. You do not want to call this on an infinite generator (for obvious reasons); consider using IEnhancements.slice or IEnhancements.limit to limit the size before calling this.
Concatenates generators (or iterators or iterables).
Ensures that any supplied generators are terminated when this is terminated.
zero or more additional Genable to provide values.
Returns false
and terminates this generator if the predicate is false for any of the generator's
yielded values.
If the generator terminates without having failed the predicate, true
is returned.
predicate to apply to each yielded value.
Optional value to supply as context (this
) for the predicate
Return a new EnhancedGenerator that yields only the values that satisfy the predicate f.
f receives the value and a sequential index.
Optional context to be passed as this
to the predicate.
Flatten the values yielded by this generator to level depth. Produces a generator that yields the individual values at each level in depth-first order. Any iterable (including Array) or iterator will be traversed and its values yielded.
The return type is currently over-broad
(default = 1)
Flatten the values yielded by applying the function to the values yielded by the generator to level depth. Produces a generator that yields the individual values at each level in depth-first order. Any iterable (including Array) or iterator will be traversed and its values yielded.
The return type is currently over-broad
Operate on each value produced by this generator. The function f is called with two values, the value yielded by this generator and a sequential index.
Value to be supplied as context this
for function f.
Trivial, but handy, same as Array.prototype.join.
(default = ',').
See also EnhancedGenerator.join
Limit the number of values that can be generated. A RangeError
is thrown if this limit is
exceeded. This is useful when you wish to abort an excessively large computation.
Apply the function to each value yielded by this generator. It is called with two arguments, the value yielded, and a sequential index. The return value is a generator that yields the values produced by the function.
Optional value to be supplied as context this
for function f.
Obtain an iterable CalendarRange for this period by supplying the interval for each iteration, or by unit and quantity
Like Array.prototype.reduce
, but the 3rd argument to the reducing function ("array") is omitted
because there is no array.
Like Array.prototype.reduce
, but the 3rd argument to the reducing function ("array") is omitted
because there is no array.
Returns a new generator that repeats the supplied value after this generator completes.
the value to repeat
The number repetitions; the default is infinite.
Returns a new generator that repeats the last value returned by this (or undefined
if this
did not return any values).
Return a new EnhancedGenerator that only yields the indicated values, skipping start initial values and continuing until the end.
Returns true
and terminates the generator if the predicate is true for any of the generator's
yielded values.
If the generator terminates without having satisfied the predicate, false
is returned.
predicate to apply to each yielded value.
Optional value to supply as context (this
) for the predicate
Sorts the supplied values and returns a sorted array.
a comparison function
Generated using TypeDoc
A CalendarRange is a CalendarPeriod that is divided up by increments of time into a series of CalendarStep segments. These segments can be iterated over in a
for
loop: