@onesy/algorithms
Version:
14 lines • 523 B
JavaScript
const cache = {};
export default function fibonacci(value) {
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
cache: true
};
// Cache
if (options?.cache && cache[value] !== undefined) return cache[value];
if (value < 2) return value;
const values = [0, 1];
for (let i = 2; i <= value; i++) values[i] = values[i - 1] + values[i - 2];
const result = values[values.length - 1];
if (options?.cache && cache[value] === undefined) cache[value] = result;
return result;
}