Lodash - memoize 方法



语法

_.memoize(func, [resolver])

创建一个函数,对 func 的结果进行记住。如果提供了 resolver,它将根据提供给被记住的函数的参数来确定用于存储结果的缓存键。默认情况下,提供给被记住的函数的第一个参数用作映射缓存键。func 使用被记住的函数的 this 绑定调用。

参数

  • func (Function) - 将其输出记住的函数。

  • [resolver] (Function) - 解析缓存键的函数。

输出

  • (Function) - 返回新的被记住的函数。

示例

var _ = require('lodash');

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

var fibonacci1 = function(n) {
   return n < 2 ? n: fibonacci1(n - 1) + fibonacci1(n - 2);
};

var startTimestamp = new Date().getTime();
var result = fibonacci(1000);
var endTimestamp = new Date().getTime();
console.log(result + " in " + ((endTimestamp - startTimestamp)) + ' ms');

startTimestamp = new Date().getTime();
result = fibonacci1(30);
endTimestamp = new Date().getTime();
console.log(result + " in " + ((endTimestamp - startTimestamp)) + ' ms');

将以上程序保存在tester.js中。运行以下命令来执行此程序。

命令

\>node tester.js

输出

4.346655768693743e+208 in 3 ms
832040 in 551 ms
lodash_function.htm
广告