JSFiddle - React, Tailwind, and code Playground
by brigand
JavaScript
let last = null;
function realExpensiveWork(arg) {
return Array.from({ length: arg.count }, (x, i) => i);
}
function expensiveWork(arg) {
if (last && last.arg === arg) {
return last.result;
} else {
last = {
arg,
result: realExpensiveWork(arg)
}
return last.result;
}
}
const thing = { count: 10000 /* big object */ };
console.log(expensiveWork(thing) === expensiveWork(thing));