Modern javascript provides a host of cool functional-programming toys like forEach
and reduce
, but I'm stuck with IE* at work, which does not. jQuery fills some of those gaps (it has $.each
and $.map
) but not everything one would want.
Enter underscore.js, which bills itself as "the tie to go along with jQuery's tux."
It doesn't modify any native objects, requiring you to wrap them as _([1,2,3]).map(function(x) {return 2*x;})
, which returns [2,4,6]
. Chaining has to be explicitly enabled, _([1,2,3]).chain().map(function(x) {return 2*x;}).reduce(function(memo, num){ return memo + num; }, 0)
returns 12
.
Looks useful.