1

我正在寻找一个 lodash(或下划线)函数,它将返回.tap.

我想要这样的东西:

var run = function(collection, fn) {
  return fn(collection);
};

_.mixin({run: run});

我希望我忽略了文档中的某些内容,因此我不必创建自己的 mixin。

4

2 回答 2

0

你可以像这样创建一个通用的 mixin:

function add(a, b, c) {
  return a + b + c
}

function sub(a, b, c) {
  return a - b - c
}

_.mixin({
  run: function (v, f) {
    var args = Array.prototype.slice.call(arguments, 2)
    args.unshift(v)
    return f.apply(this, args)
  }
})
var r = _.chain(1).run(add, 1, 1).run(sub, 2, 2).value()

console.log(r) ->  -1
1 + 1 + 1 - 2 - 2 = -1

您可以传递函数和附加参数。该函数将被调用,最后一个链操作的结果作为第一个参数,run调用的附加参数。

于 2014-01-16T18:18:05.900 回答
0

在 lodash 中,您可以_.thru从 v3 开始使用:

_.thru(value, interceptor, [thisArg])

_.tap除了返回拦截器的结果之外,此方法与此方法类似。

于 2015-06-25T12:08:13.057 回答