[英]Continue chain after reduce in lodash
我想做如下的事情
_(data)
.map(() => /** ... */)
.reduce(function (modifier, doc) {
modifier.$set = modifier.$set || {};
modifier.$set.names = doc.names;
return modifier;
}, {})
.map(() => /** ... */)
.flatten()
然而,似乎在減少后,鏈斷裂。
有沒有辦法從reduce返回的值繼續鏈?
reduce()
方法不能保證生成其他方法可以操作的集合(數組,對象或字符串),因此默認情況下它是可鏈接的是沒有意義的。
從關於lodash對象( _
)的lodash文檔:
操作和返回數組,集合和函數的方法可以鏈接在一起。 檢索單個值或可能返回原始值的方法將自動結束返回未包裝值的鏈。
但是,您可以使用_.chain()
顯式強制鏈接。 這將允許在lodash包裝器中顯式返回單個值和基元以繼續鏈接。
因此對於您的代碼可能如下所示:
_.chain(data)
.map(() => /** ... */)
.reduce(function (modifier, doc) {
modifier.$set = modifier.$set || {};
modifier.$set.names = doc.names;
return modifier;
}, {})
.map(() => /** ... */)
.flatten()
lodash文檔說reduce()不是可鏈接的。 請參見此處:“默認情況下不可鏈接的包裝器方法是:... reduce” https://lodash.com/docs#_
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.