其他分享
首页 > 其他分享> > 前端技巧--记忆

前端技巧--记忆

作者:互联网

记忆是主要用于加速程序计算的一种优化技术,使得函数避免重复计算之前被处理的输入,而返回已缓存的结果

以斐波那契数列和阶乘为例

定义一个函数,参数为一个数组memo和一个回调函数formule

    var memoizer = function (memo, formule) {
        var recur = function (n) {
            var result = memo[n]
            if (typeof result !== 'number') {
                result = formule(recur, n)
                memo[n] = result
            }
            return result
        }
        return recur
    }

调用斐波那契数列函数

    var fibonacci = memoizer([0, 1], function (recur, n) {
        return recur(n - 1) + recur(n - 2)
    })
        console.log(fibonacci(6));

调用阶乘函数

    var factorial = memoizer([1, 1], function (recur, n) {
        return n * recur(n - 1)
    })
        console.log(factorial(6));

这样只需要提供一个基本的公式即可产生对应的函数

标签:function,return,recur,--,前端,记忆,result,var,memo
来源: https://blog.csdn.net/Moriarty123666/article/details/120639725