gpt4 book ai didi

javascript - 在 lodash 中 reduce 后继续链

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:47 29 4
gpt4 key购买 nike

我想做如下的事情

_(data)
.map(() => /** ... */)
.reduce(function (modifier, doc) {
modifier.$set = modifier.$set || {};
modifier.$set.names = doc.names;
return modifier;
}, {})
.map(() => /** ... */)
.flatten()

但是,似乎在 reduce 之后,链条断开了。

有没有办法从 reduce 返回的值继续链?

最佳答案

reduce() 方法不能保证生成其他方法可以操作的集合(数组、对象或字符串),因此默认情况下它可以链接是没有意义的。

来自关于 lodash 对象的 lodash 文档 (_):

Methods that operate on and return arrays, collections, and functions can be chained together. Methods that retrieve a single value or may return a primitive value will automatically end the chain returning the unwrapped value.

_ documentation

但是,您可以使用 _.chain() 显式强制执行链接。这将允许在 lodash 包装器中显式返回单个值和原语以继续链接。

因此对于您的代码可能如下所示:

_.chain(data)
.map(() => /** ... */)
.reduce(function (modifier, doc) {
modifier.$set = modifier.$set || {};
modifier.$set.names = doc.names;
return modifier;
}, {})
.map(() => /** ... */)
.flatten()

_.chain() documentation

关于javascript - 在 lodash 中 reduce 后继续链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33024548/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com