Javascript 惰性评估在Lodash中不起作用

Javascript 惰性评估在Lodash中不起作用,javascript,lodash,Javascript,Lodash,Lodash的文件说它。根据我的测试,下面的链被评估了100次而不是10次。我使用的是3.10.1版 _(_.range(100)) .map(function(x) {console.log(1); return x; }) .take(10) .value() 您可以看到,我们在map中向控制台打印了100次,而不是我预期的10次。请在此处查看问题: 我做错了什么?我怎样才能让这个评估变得懒惰 更新:这似乎是Lodash的回归。我测试了它在不同版本中的工作方式,并得到了以下结果: 版

Lodash的文件说它。根据我的测试,下面的链被评估了100次而不是10次。我使用的是3.10.1版

_(_.range(100))
 .map(function(x) {console.log(1); return x; })
 .take(10)
 .value()
您可以看到,我们在
map
中向控制台打印了100次,而不是我预期的10次。请在此处查看问题:

我做错了什么?我怎样才能让这个评估变得懒惰

更新:这似乎是Lodash的回归。我测试了它在不同版本中的工作方式,并得到了以下结果:

版本2.4.2:100次

3.0.0版:10次

版本3.9.0 10次


版本3.10.0:100次

这是预期的行为。Lodash将仅对包含200个或更多项的阵列执行此优化。将第一行中的范围增加到200以查看此操作

看起来限制已被删除: