lodash - 链接过滤器和 forEach

tzo*_*zik 5 javascript lodash

我有以下用 lodash 编写的工作代码,最新版本

            _.forEach(_.filter($ctrl.data, ['x', 'y']), function (elem) {
                ...
            });
Run Code Online (Sandbox Code Playgroud)

如果我尝试将其转换为链,它永远不会执行里面的块代码forEach

            _.chain($ctrl.data)
                .filter(['x', 'y'])
                .forEach(function (elem) {
                   ...
                });
Run Code Online (Sandbox Code Playgroud)

为什么?

tzo*_*zik 4

_($ctrl.data)我通过使用而不是解决了这个问题_.chain($ctrl.data)。我读到这里的主要区别是 lodash 的全局函数_.value()在末尾有一个“终止符函数”时调用。

等效的用法_.chain是显式调用_.value()at before _.forEach()。但仍然无法弄清楚问题是什么,因为从我的角度来看, aforEach是一个“终止函数”。