5
Lodash文檔說它supports lazy evaluation。從我的測試中,下面的鏈條被評估100次而不是10次。我使用的是3.10.1版本。懶惰評估不起作用在Lodash
_(_.range(100))
.map(function(x) {console.log(1); return x; })
.take(10)
.value()
你可以看到,我們打印到控制檯100次裏面map
,而不是10倍,我本來期望。看看這裏的問題:https://jsfiddle.net/07utwk6y/
我在做什麼錯?我怎樣才能讓這種懶惰的評估?
更新:這似乎是在洛達什迴歸。我測試是如何工作的不同版本和整個以下結果出來:
版本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/
看起來像限制被刪除:https://github.com/lodash/lodash/commit/9d3047001d38a03f84c9afb86b5272d8c9533e5e –