Skip to content

Instantly share code, notes, and snippets.

@eternal44
Created December 21, 2015 19:23
Show Gist options
  • Save eternal44/82b74a0650ed5caf0f0c to your computer and use it in GitHub Desktop.
Save eternal44/82b74a0650ed5caf0f0c to your computer and use it in GitHub Desktop.
Memoize solution
_.memoize = function(func) {
var history = {};
var result;
return function() {
var args = Array.prototype.slice.call(arguments); // to set as object keys
var setResult = function(func){
result = func.apply(this, args);
};
if (!history[func]) {
setResult(func);
history[func] = {[args]: result};
} else if (!history[func][args]){
setResult(func);
history[func][args] = result;
}
return history[func][args];
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment