我试着:


过滤对象集合。
对过滤后的集合的每个项目运行一个函数。


我正在使用lodash,如果我写这条语句

_.each(_.filter(sut.Nodes, nodeFilter), test);


测试函数执行过滤后的收集长度时间

但是如果我这样写声明

_(sut.Nodes)
  .filter(nodeFilter)
  .map(test);


任何时候都不会执行测试功能。

谁能解释为什么?

我认为与懒惰有关。如果是,我该如何执行死刑?

最佳答案

链接表达式是“惰性”的,因为直到您请求结果后才执行它们。您可以这样做,例如,通过在链的末尾使用.value()

_(sut.Nodes)
  .filter(nodeFilter)
  .map(test)
  .value();

10-06 04:37