5.17 tap

5.17.1 语法

_.tap(object, interceptor)

5.17.2 说明

用 object作为参数来调用函数interceptor,然后返回object。这种方法的主要意图是作为函数链式调用 的一环, 为了对此对象执行操作并返回对象本身。

5.17.3 代码示例

示例一:单独用法

//执行了alert([1, 2])并返回了[1, 2]
//不过意义不是很大
_.tap([1, 2], alert); //=> [1, 2]

示例二:在链式中使用

_.chain([-1, -2, -3, -4])
    .filter(function(v) {
        return v & 1;
    })
    .tap(alert) //弹出[-1, -3],并返回原先的对象
    .map(Math.abs) //变成绝对值
    .value(); //=> [1, 3]

5.17.4 源码展示

//其实就是这么简单, 没什么好说的。
_.tap = function(obj, interceptor) {
    interceptor(obj);
    return obj;
};

5.17.5 传入一个数组,去掉最后一个,然后反转 (坑)

var list = [1, 3, 5, 7]

var result = _.chain(list)
    //写下一些代码

console.log(result); //=> [5, 3, 1]