Lodash文档说它是支持懒惰评估。从我的测试中,下面的链被评估了100次,而不是10次。我使用的是3.10.1版本。
_(_.range(100))
.map(function(x) {console.log(1); return x; })
.take(10)
.value()您可以看到,我们在map中打印了100次到控制台,而不是我所期望的10次。查看这里的问题:https://jsfiddle.net/07utwk6y/
我做错了什么?我怎么能懒洋洋地评估这个问题呢?
更新:,这似乎是Lodash中的一个回归。我测试了这些版本是如何工作的,并得到了以下结果:
版本2.4.2: 100次https://jsfiddle.net/4Lq7z5xL/
版本3.0.0: 10次https://jsfiddle.net/fd6g6un5/
版本3.9.0 10倍https://jsfiddle.net/ju8rppee/
版本3.10.0: 100次https://jsfiddle.net/x1g13oo8/
发布于 2015-08-08 17:08:25
这是预期的行为。Lodash将只对有200项或更多项的数组执行此优化。将第一行中的范围增加到200,以查看此操作。
https://stackoverflow.com/questions/31889961
复制相似问题