xrange.js
Javascript xrange / range function for node and browser.
xrange is based on the function of the same name from Python 2. It is a facility to iterate from start to finish by increment – even downward – without having to create a loop or array. Importantly, like the one in Python, xrange can be used completely as an iterator, with no array created.
Usage
Create with 1, 2, or 3 parameters
xrange(3).toArray(); // -> [ 0, 1, 2 ];
xrange(1, 4).toArray(); // -> [ 1, 2, 3 ];
xrange(1, 6, 2).toArray(); // -> [ 1, 3, 5 ];Count downwards
Implied if second argument < first, but can also be set as 3rd parameter:
xrange(5, 2).toArray(); // -> [ 5, 4, 3 ];
xrange(5, 0, -2).toArray(); // -> [ 5, 3, 1 ];Length
xrange(5).length; // 5
xrange(0, 5, 2); // 3Iterators
each/foreach
var sum = 0;
xrange(3).each(function(each) {
sum += each;
});
// or `forEach`
xrange(3).forEach(function(each) {
sum += each;
});map
var plusOne = xrange(3).map(function(each) {
return each + 1;
});Recipes
Create an array of 5 5’s:
var array = xrange(5).map(function () {
return 5;
});Use async like a for loop:
async.each(
xrange(1, 10),
function(each, callback) {
callback(null, each);
}, function (err) {
// finished ...
}
);Installation
Node
npm install xrangeBrowser
bower install xrange