1.1.0 • Published 4 years ago
com.recoyxgroup.javascript.range v1.1.0
JavaScriptRange
Generic Range
object for JavaScript. It can be used with Number
, BigInt
and types with explicit implementation.
Example
import Range from 'com.recoyxgroup.javascript.range';
for (let i of Range(0, 10))
console.log(i);
console.log(0 in Range(0, 10)); // true
console.log(10 in Range(0, 10)); // false
console.log(10 in Range(10, -1, -1)); // true
console.log(0 in Range(10, -1, -1)); // true
console.log(-1 in Range(10, -1, -1)); // false
Support for non Number
endpoints
import Range from 'com.recoyxgroup.javascript.range';
class C0 {
constructor(v) {
this._value = v instanceof C0 ? v._value : Number(v);
}
[Range.LessThan](arg) { return this._value < C(arg)._value }
[Range.GreaterThan](arg) { return this._value > C(arg)._value }
[Range.LessThanOrEquals](arg) { return this._value <= C(arg)._value }
[Range.GreaterThanOrEquals](arg) { return this._value >= C(arg)._value }
valueOf() {
return this._value;
}
}
// Allow C to be called with a Number.
let C = new Proxy(C0, {
apply(target, thisObject, [v]) {
return new C0(v);
},
});
Reference
Range(start = 0, end = 0, step = undefined):Range
Range(str:String):Range
Example: Range('0-9')
[object Range].start
Read-only starting point.
[object Range].end
Read-only ending point.
[object Range].step
Read-only step unit.
[object Range].from
Same as [object Range].start
.
[object Range].to
Same as [object Range].end
.