迭代器或懒惰评估的好处

时间:2014-04-02 16:02:08

标签: iterator lazy-evaluation evaluation

我最近为我的客户端javascript在typescript中构建了一个linq替代品。我知道有很多开源项目可用,但我想自己构建它来迎接挑战。 我开始研究懒惰的评估(迭代器)我的方法。我开始挣扎着好处。

如果我有这样的话。

var myArray = [1,2,3,4,5];

目前的热切评估

var myResult = myArray.Where(function(x){ x >= 4 });

//my result will be 4,5 - then I can run a Last
var myLastItem = myResult.Last();

我的上一个项目= 5。

如果我将它们合并,我可以做以下事情。最后一个方法只会循环4,5(从哪里过滤) 因此,它不需要遍历整个记录集(myArray)

var myLastItem = myArray.Where(function(x){ x >= 4 }).Last();

如果我们尝试使用迭代器来懒惰地评估它,这对它有什么帮助呢?

唯一的好处是,如果我们有一个if语句,我们可能需要结果 - 或者可能不需要。这样,linq语句永远不会运行。

0 个答案:

没有答案