JSFiddle - React, Tailwind, and code Playground

by Paco86

JavaScript

var fib = function(n) {  
    if (n < 2) return n;
    
    return fib(n - 1) + fib(n - 2);
}; 

var memoize = function(fn) {
    var map = new Map();
    map.set(0, 0);
    map.set(1, 1);
    
    return function(n) {
        if (!map.has(n)) {
            map.set(n, fn(n))
        }
        
        return map.get(n);
    };  
};

var memoizeFib = memoize(fib);
memoizeFib(10);

var memoizeFib = memoize();
memoizeFib(1000);
const t0 = performance.now();
console.log(memoizeFib(1000));
const t1 = performance.now();
console.log(`Call to doSomething took ${t1 - t0} milliseconds.`);
const t2 = performance.now();
console.log(memoizeFib(1000));
const t3 = performance.now();
console.log(`Call to doSomething took ${t3 - t2} milliseconds.`);