# xrange

xrange function for easy numeric iteration

``npm install xrange``

# 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);  // 3
``````

## Iterators

### 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 xrange
``````

## Browser

``````bower install xrange
``````
npm loves you