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
廣告
© . All rights reserved.