Lodash没有运行每个功能

时间:2015-06-29 09:13:56

标签: javascript lodash

我正在努力:

  1. 过滤一组对象。
  2. 对已过滤的集合的每个项目运行一个函数。
  3. 我正在使用lodash,如果我写这个声明

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

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

    但是,如果我写这样的声明

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

    测试功能不会随时执行。

    有人可以解释原因吗?。

    我认为是懒惰相关的东西。如果是,我该怎么解雇执行?

1 个答案:

答案 0 :(得分:4)

链接表达式是“懒惰的”,因为在您请求结果之前它们不会被执行。例如,您可以在链的末尾使用.value()来执行此操作:

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