Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function memoize(fn) {
- const cache = {};
- return function (arg) {
- if (cache[arg]) {
- console.info(`Use cache to returns previous data`);
- return cache[arg];
- }
- const result = fn(arg);
- cache[arg] = result;
- return result;
- }
- }
- function power3(x) {
- console.warn('Calculate result');
- return Math.pow(x, 30);
- }
- const number = 12;
- console.group('Regular: Calculate result');
- console.time();
- power3(number);
- console.timeEnd();
- console.groupEnd();
- const fastPower3 = memoize(power3);
- console.group('Memoize: Calculate result and save into cache');
- console.time();
- fastPower3(number);
- console.timeEnd();
- console.groupEnd();
- console.group('Memoize: returns value from cache');
- console.time();
- fastPower3(number);
- console.timeEnd();
- console.groupEnd();
- console.group('Memoize: returns value from cache (second time)');
- console.time();
- fastPower3(number);
- console.timeEnd();
- console.groupEnd();
Add Comment
Please, Sign In to add comment