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
廣告