📜  Lodash _.memoize() 方法

📅  最后修改于: 2022-05-13 01:56:27.776000             🧑  作者: Mango

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。