Lodash _.memoize() 方法
_.memoize()方法用于通过缓存函数计算的结果来记忆给定的函数。如果发出解析器,则用于存储结果的缓存键是根据提供给 memoized 方法的参数确定的。默认情况下,提供给 memoized函数的第一个参数用作地图缓存键。
句法:
_.memoize(func, [resolver])
参数:此方法接受上面提到的两个参数,如下所述:
- func:此参数保存函数以记忆其输出。
- resolver:解析缓存键的函数。
返回值:此方法返回新的记忆函数。
注意:这里使用 const _ = require('lodash') 将 lodash 库导入文件。
示例 1:
Javascript
// Requiring the lodash library
const _ = require("lodash");
// Use of _.memoize() method
var sum = _.memoize(function (n) {
return n < 1 ? n : n + sum(n - 1);
});
// Sum of first 6 natural number
console.log(sum(6));
Javascript
// Requiring the lodash library
const _ = require("lodash");
var object = { 'cpp': 5, 'java': 8 };
// Use of _.memoize() method
var values = _.memoize(_.values);
// value of object
console.log(values(object));
// Modify the result cache.
values.cache.set(object, ['html', 'css']);
console.log(values(object));
输出:
21
示例 2:
Javascript
// Requiring the lodash library
const _ = require("lodash");
var object = { 'cpp': 5, 'java': 8 };
// Use of _.memoize() method
var values = _.memoize(_.values);
// value of object
console.log(values(object));
// Modify the result cache.
values.cache.set(object, ['html', 'css']);
console.log(values(object));
输出:
[5, 8]
['html', 'css']
注意:这在普通 JavaScript 中不起作用,因为它需要安装库 lodash。