ALLTHETHINGS.JS
Let your array iterations read like actual sentences:
var things = 'all' 'the' 'things';{console;}log;
For no extra cost, you also get the 'fromThe' and 'inThe' aliases, for your grammatical needs:
var proHackers = filterNoobs;
containsProHackers; // true
And all for less than 1KB, with no dependencies*. Delicious.
*Unless your browser is an antique. Then you need es5-shim.
ALLTHETHINGS.JS allows you to sentencify the following array methods:
Gimme gimme
Node.js
Install with: npm install allthethings
;
Browser
Download the production version or the development version.
forEach / map
By default, 'allThe' performs a map on the array, which doubles as a forEach:
forEach
var things = 'all' 'the' 'things'; { console;} log;
map
var numbers = 123; { return number * 3;} var multiplesOfThree = triple; // [3,6,9]
filter
If your named function starts with 'filter' or 'is', then a filter is performed.
When filtering, it's idiomatic to use 'fromThe' instead of 'allThe':
var numbers = -2-1012; { return number >= 0;} filterNegatives; // [0,1,2]
var numbers = -2-1012; { return number > 0;} isPositive; // [1,2]
reduce / reduceRight
If your named function starts with 'reduce', 'calculate' or 'add', then a reduce is performed.
If you add 'Right' to any of these, then a reduceRight is performed instead.
When reducing, it's idiomatic to use 'fromThe' instead of 'allThe':
Given the 'numbers' array:
var numbers = 123;
Any of these will work identically:
{ return a + b;} var total = reduceTotal; // 6
{ return a + b;} var total = calculateTotal; // 6
{ return a + b;} var total = addTotal; // 6
some
If your named function starts with 'some', 'contains' or 'has', then a some is performed.
When using 'some', it's idiomatic to use 'inThe' instead of 'allThe':
var numbers = -2-1012; { return number < 0;} someNegatives; // true
var numbers = -2-1012; { return number < 0;} containsNegatives; // true
var numbers = -2-1012; { return number < 0;} hasNegatives; // true
every
If your named function starts with 'every' or 'all', then an every is performed.
When using 'every', it's idiomatic to use 'inThe' instead of 'allThe':
var numbers = 12345; { return number > 0;} everyNumberIsPositive; // true
var numbers = 12345; { return number > 0;} allPositive; // true
Elite hacker tips
Aliased functions
Assign a named function expression to a variable of a different name:
var things = false true false;var {return thing === true;};myAliasedFunction; // [true]
Custom function name rules
You can create new rules or override existing ones:
In Node.js
var allthethings = ;allthethingsrulesfilter = /foobar/;
In the browser
windowallthethingsrulesfilter = /foobar/;
Which allows:
var numbers = 1234;{return number % 2 === 0;}// This now performs a filter:foobar; // [2,4]
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.
License
Copyright (c) 2012 Mark Dalgleish
Licensed under the MIT license.