Awesome
node-array
Extending the array object for Node.js, to provide more methods and features to operate array object.
Installation
Using NPM utility to install module directly:
npm install node-array
Documentation
node-array provided many easy-use methods for Array object.
<a name="forEachAsync" /> ### [Array Object].forEachAsync()
Asynchronous version of forEach() to avoid blocking by traversing array.
Example
var Array = require('node-array');
var a = [ 1, 2, 3, 4, 5 ];
a.forEachAsync(function(element, index, arr) {
console.log(element);
}, function() {
console.log('complete');
});
Simulate "break" statement of For-Loop:
var Array = require('node-array');
var a = [ 1, 2, 3, 4, 5 ];
a.forEachAsync(function(element, index, arr) {
console.log(element);
if (element == 3)
return false;
}, function() {
console.log('complete');
});
Simulate "continue" statement of For-Loop:
var Array = require('node-array');
var a = [ 1, 2, 3, 4, 5 ];
a.forEachAsync(function(element, index, arr, next) {
console.log(element);
// continue after one second
setTimeout(function() {
// Use next() to continue
next();
}, 1000);
return true;
}, function() {
console.log('complete');
});
<a name="parallel" /> ### [Array Object].parallel()
Process all of items of array object in parallel.
Example
var Array = require('node-array');
var a = [];
// Prepare 1000 items for testing
for (var i = 0; i < 1000; i++) {
a.push(i+1);
}
// Make 50 workers to process all items of array in parallel
a.parallel(50, function(element, index, arr, complete) {
setTimeout(function() {
console.log(element);
complete();
}, Math.round(Math.random() * 1000));
}, function() {
console.log('complete');
});
In the Browser
node-array can be used in the browser:
<script type="text/javascript" src="node-array.js"></script>
<script type="text/javascript">
var a = [ 1, 2, 3, 4, 5 ];
a.forEachAsync(function(element, index, arr) {
console.log(element);
}, function() {
console.log('complete');
});
</script>
License
Licensed under the MIT License
Authors
Copyright(c) 2012 Fred Chien <cfsghost@gmail.com>