@@ -23,17 +23,23 @@ Install via npm: `npm install multi-integer-range`
23
23
### Initialization
24
24
25
25
Initialization can be done with an integer array, a string, or another MultiRange instance.
26
+ A shorthand constructor function ` multirange() ` is also available.
27
+ Use whichever you prefer.
26
28
27
29
``` js
28
30
var MultiRange = require (' multi-integer-range' ).MultiRange ;
29
31
30
- var mr = new MultiRange ([7 , 2 , 9 , 1 , 8 , 3 ]);
32
+ var mr1 = new MultiRange ([7 , 2 , 9 , 1 , 8 , 3 ]);
31
33
var mr2 = new MultiRange (' 1-2, 3, 7-9' );
32
- var mr3 = new MultiRange (mr);
34
+ var mr3 = new MultiRange (mr1);
35
+
36
+ // function-style
37
+ var multirange = require (' multi-integer-range' ).multirange ;
38
+ var mr4 = multirange (' 1,2,3,7,8,9' ); // the same as `new MultiRange`
33
39
```
34
40
35
41
Internal data are always sorted and normalized,
36
- so the above three constructor create instances with identical data.
42
+ so the above four ( ` mr1 ` - ` mr4 ` ) hold a instance with identical range data.
37
43
38
44
The string parser is permissive and accepts space characters
39
45
before/after comma/hyphens. Order is not important either, and
@@ -101,8 +107,7 @@ console.log(mr.getRanges()); // [[1,3],[5,8]]
101
107
you can simply iterate over the instance using the ` for ... of ` statement:
102
108
103
109
``` js
104
- var pages = new MultiRange (' 2,5-7' );
105
- for (let page of pages) {
110
+ for (let page of multirange (' 2,5-7' )) {
106
111
console .log (page);
107
112
}
108
113
// prints 2, 5, 6, 7
@@ -112,8 +117,7 @@ If `Symbol.iterator` is not defined, you can still access the iterator
112
117
implementation and use it manually like this:
113
118
114
119
``` js
115
- var pages = new MultiRange (' 2,5-7' ),
116
- it = pages .getIterator (),
120
+ var it = multirange (' 2,5-7' ).getIterator (),
117
121
page;
118
122
while (! (page = it .next ()).done ) {
119
123
console .log (page .value );
0 commit comments