Skip to content

Instantly share code, notes, and snippets.

@sTiLL-iLL
Last active December 20, 2015 15:08
Show Gist options
  • Save sTiLL-iLL/6151459 to your computer and use it in GitHub Desktop.
Save sTiLL-iLL/6151459 to your computer and use it in GitHub Desktop.
more abstractions...
function map(func, array) {
var len = array.length;
var rst = new Array(len);
for (var i = 0; i < len; i++)
rst[i] = func(array[i]);
return rst;
}
function reduce(func, start, array) {
var len = array.length;
for (var i = 0; i < len; i++)
start = func(start, array[i]);
return start;
}
function pluck(tst, array) {
var rslt = [],
len = array.length;
for (var i = 0; i < len; ++i) {
var crnt = array[i];
if (tst(crnt))
rslt.push(crnt);
}
return rslt;
}
function anyAll(t, array) {
for (var i = 0; i < array.length; ++i) {
var fnd = t(array[i]);
if (fnd)
return fnd;
}
return false;
}
function stickem(func, obj) {
return function() {
return func.apply(obj, args);
};
}
function method(obj, nm) {
return function() {
obj[nm].apply(obj, args);
};
}
function compose(fnc1, fnc2) {
return function() {
return fnc1(fnc2.apply(null, args));
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment