Javascript 惰性评估在Lodash中不起作用
Lodash的文件说它。根据我的测试,下面的链被评估了100次而不是10次。我使用的是3.10.1版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的回归。我测试了它在不同版本中的工作方式,并得到了以下结果: 版
_(_.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以查看此操作 看起来限制已被删除: