我试着:
过滤对象集合。
对过滤后的集合的每个项目运行一个函数。
我正在使用lodash,如果我写这条语句
_.each(_.filter(sut.Nodes, nodeFilter), test);
测试函数执行过滤后的收集长度时间
但是如果我这样写声明
_(sut.Nodes)
.filter(nodeFilter)
.map(test);
任何时候都不会执行测试功能。
谁能解释为什么?
我认为与懒惰有关。如果是,我该如何执行死刑?
最佳答案
链接表达式是“惰性”的,因为直到您请求结果后才执行它们。您可以这样做,例如,通过在链的末尾使用.value()
:
_(sut.Nodes)
.filter(nodeFilter)
.map(test)
.value();