如何在lodash链中获得收藏?

时间:2017-07-25 13:26:38

标签: javascript lodash chain

我目前正在使用带链的lodash。我做了类似的事情:

let result = _(myCollection)
    .filter(...)
    .map(...)
    .value()
return _.reduce(result, (a, b) => a && b, result.length != 0)

但我对此并不满意。我想在一条指令中做所有事情以获得类似的东西:

return _(myCollection)
    .filter(...)
    .map(...)
    .reduce((a, b) => a && b, myMappedCollection.length != 0)
    .value()

我无法找到一种方法来取回当前处理的收藏品。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

如文档中所述:https://lodash.com/docs/4.17.4#reduce

  

将集合减少到一个值,该值是通过iteratee运行集合中每个元素的累积结果,其中每个连续调用都提供前一个的返回值。如果未给出累加器,则将第一个集合元素用作初始值。使用四个参数调用iteratee:   (累加器,值,索引|键,集合)。

您可以执行以下操作

return _(myCollection)
.filter(...)
.map(...)
.reduce((a, b, indx, myMappedCollection) => a && b, myMappedCollection.length != 0)
.value()