【问题标题】:_.memoize applicable scenario is what?_.memoize适用的场景是什么?
【发布时间】:2016-04-13 23:17:57
【问题描述】:

我学习underscorejs _.memoize 方法,想知道他的适用场景。 晕眩的!晕眩的!不明白 API 在说什么。

var fibonacci = _.memoize(function(n) {
    return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});

【问题讨论】:

    标签: javascript


    【解决方案1】:

    Memoization 创建一个函数来记住它的结果,这样它就不必再次计算它们。

    例如计算斐波那契(5)时:

    • 斐波那契(5) = 斐波那契(4) + 斐波那契(3)
    • 斐波那契(4) = 斐波那契(3) + 斐波那契(2)

    等等。可以看到 fibonacci(3) 被使用了两次,但是每次的结果都是一样的,所以不需要计算两次。相反,memoized fibonacci 函数只计算第一次,并存储结果;此后每当使用 fibonacci(3) 时,它都会立即返回存储的结果。

    另见What is memoization good for and is it really all that helpful?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 2014-03-27
      • 2011-06-26
      • 1970-01-01
      • 2013-09-06
      • 2018-03-09
      • 1970-01-01
      • 2018-03-14
      相关资源
      最近更新 更多