Для получения полного доступа
зарегистрируйтесь

Цепочка команд


Использование (EcmaScript5):

pipe(function(x) { return x + x }).pipe(function(x) { return x*x; }).pipe(function(x) { return x - 3; }).map([1,2,3])

Использование (EcmaScript6):

pipe(x => x + x).pipe(x => x*x).pipe(x => x - 3).map([1,2,3])

Сама функция:

function pipe(func) {
    var callstack = [func];
    return {
        pipe: function(func) {
            if (typeof(func) === "function")
                callstack.push(func);
            return this;
        },
        map: function(data) {
            callstack.forEach(
                function(func) {
                    data = data.map(function(val) {
                        return func(val); });
                });
            return data;
        }
    }
}

Результат — [ 1, 13, 33 ]

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация