我正在学习underscorejs _.memoize方法,我想知道他的适用场景。 晕眩的!晕眩的!不明白API在说什么。
var fibonacci = _.memoize(function(n) {
return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});
最佳答案
Memoization创建一个记住其结果的函数,这样就不必再次计算它们。
例如,计算 fibonacci(5) 时:
- 斐波那契(5) = 斐波那契(4) + 斐波那契(3)
- 斐波那契(4) = 斐波那契(3) + 斐波那契(2)
等等。您可以看到 fibonacci(3) 使用了两次,但每次都会得到相同的结果,因此无需计算两次。相反,内存斐波那契函数仅在第一次计算并存储结果;此后每当使用 fibonacci(3) 时,它都会立即返回存储的结果。
另请参阅What is memoization good for and is it really all that helpful? .
关于javascript - _.memoize适用场景是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34691190/