Guest User

Untitled

a guest
Feb 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. function memoize(fn) {
  2. var cache = {};
  3. return function(arg) {
  4. var query = JSON.stringify(arg);
  5. if (!cache[query]) {
  6. cache[query] = fn(arg);
  7. }
  8. return cache[query];
  9. }
  10. }
  11.  
  12.  
  13. // example. factorial
  14. function factorial(n) {
  15. if (n < 2) {
  16. return n;
  17. }
  18.  
  19. return n * factorial(n - 1);
  20. }
  21.  
  22. factorial(20);
  23. console.time('not memoized');
  24. factorial(20);
  25. console.timeEnd('not memoized');
  26.  
  27. var factorialMemoized = memoize(factorial);
  28.  
  29. factorialMemoized(20);
  30. console.time('memoized');
  31. factorialMemoized(20);
  32. console.timeEnd('memoized');
Add Comment
Please, Sign In to add comment