我正在尝试:
- 过滤一组对象。
- 对过滤后的集合中的每一项运行一个函数。
我正在使用lodash,如果我写这个语句
_.each(_.filter(sut.Nodes, nodeFilter), test);
测试函数执行过滤集合长度次数
但是如果我这样写语句
_(sut.Nodes)
.filter(nodeFilter)
.map(test);
任何时候都不会执行测试函数。
谁能解释为什么?
我想这与懒惰有关。如果是,我该如何触发执行?
最佳答案
链式表达式是“惰性的”,因为在您请求结果之前它们不会执行。例如,您可以使用 .value()
来做到这一点在链的末端:
_(sut.Nodes)
.filter(nodeFilter)
.map(test)
.value();
关于javascript - Lodash 没有运行每个功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31111882/