Underscore.JS memoize方法

Underscore.JS memoize方法

语法

_.memoize(function, [hashFunction])

memoize方法加速了慢计算的过程。它通过缓存函数的输出来记住给定的函数。如果传入hashFunction,则使用它来计算哈希值,以便根据传递给原始函数的参数来存储结果。请参考下面的示例

示例

var _ = require('underscore');

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 6 ms
832040 in 30 ms

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程