@@ -23,8 +23,21 @@ Install via npm: `npm install multi-integer-range`
23
23
24
24
### Initialization
25
25
26
- Initialization can be done with an integer array, an array of
27
- ` [number, number] ` tuples, a string, or another MultiRange instance.
26
+ Most of the methods (including the constructor) take one * Initializer* parameter.
27
+ An initializer is an integer array, an array of ` [number, number] ` tuples,
28
+ a string, a single integer, or another MultiRange instance.
29
+
30
+ Pass it to the constructor to create a MultiRange object. Of course you can
31
+ create an empty MultiRange object if no argument is passed to the constructor.
32
+
33
+ ```
34
+ Initializer:
35
+ string |
36
+ number |
37
+ ( number | [number,number] )[] |
38
+ MultiRange;
39
+ ```
40
+
28
41
A shorthand constructor function ` multirange() ` is also available.
29
42
Use whichever you prefer.
30
43
@@ -34,15 +47,15 @@ var MultiRange = require('multi-integer-range').MultiRange;
34
47
var mr1 = new MultiRange ([7 , 2 , 9 , 1 , 8 , 3 ]);
35
48
var mr2 = new MultiRange (' 1-2, 3, 7-9' );
36
49
var mr3 = new MultiRange ([[1 ,3 ], [7 ,9 ]]);
37
- var mr4 = new MultiRange (mr1);
50
+ var mr4 = new MultiRange (mr1); // clone
38
51
39
52
// function-style
40
53
var multirange = require (' multi-integer-range' ).multirange ;
41
54
var mr5 = multirange (' 1,2,3,7,8,9' ); // the same as `new MultiRange`
42
55
```
43
56
44
57
Internal data are always sorted and normalized,
45
- so the above four (` mr1 ` -` mr5 ` ) hold a instance with identical range data.
58
+ so the above five (` mr1 ` -` mr5 ` ) hold a instance with identical range data.
46
59
47
60
The string parser is permissive and accepts space characters
48
61
before/after comma/hyphens. Order is not important either, and
@@ -94,19 +107,19 @@ console.log(mr.isContinuous()); // false
94
107
There are several ways to get the content of the MultiRange object.
95
108
96
109
``` js
97
- var mr = new MultiRange ([1 ,2 ,3 ,5 ,6 ,7 ,8 ]);
110
+ var mr = new MultiRange ([1 ,2 ,3 ,5 ,6 ,7 ,8 , 10 ]);
98
111
99
112
// As a string
100
- console .log (mr .toString ()); // '1-3,5-8'
113
+ console .log (mr .toString ()); // '1-3,5-8,10 '
101
114
102
115
// Or concat an empty string to implicitly call #toString()
103
- console .log (' ' + mr); // '1-3,5-8'
116
+ console .log (' ' + mr); // '1-3,5-8,10 '
104
117
105
118
// As an array which holds every integer (of course slow for large range)
106
- console .log (mr .toArray ()); // [1,2,3,5,6,7,8]
119
+ console .log (mr .toArray ()); // [1,2,3,5,6,7,8,10 ]
107
120
108
121
// As an array of 2-element arrays
109
- console .log (mr .getRanges ()); // [[1,3],[5,8]]
122
+ console .log (mr .getRanges ()); // [[1,3],[5,8],[10,10] ]
110
123
```
111
124
112
125
### Iteration
@@ -148,7 +161,7 @@ npm test
148
161
149
162
### Bugs
150
163
151
- Use GitHub issues.
164
+ Report any bugs and suggestions using GitHub issues.
152
165
153
166
## Author
154
167
0 commit comments