Используя Underscore.js, могу написать следующее, которое возвращает 42
:
_([42, 43]).chain()
.first()
.value()
У меня есть пользовательская функция, а не часть Underscore.js, называемая double()
:
function double(value) { return value * 2; };
Я хотел бы иметь возможность вызвать эту функцию в цепочке Underscore, как если бы она была частью Underscore. Я хотел бы написать следующее, которое я хотел бы вернуть 84
:
_([42, 43]).chain()
.first()
.double()
.value()
Это невозможно, так как Underscore не определяет double()
. Я мог бы использовать tap()
, как в:
_([42, 43]).chain()
.first()
.tap(double)
.value()
Это допустимо, но tap
применяет функцию к своему аргументу и возвращает аргумент, а не результат функции. Поэтому мне кажется, что мне нужен тип tap
, который возвращает результат функции, примененной к его аргументу. Есть ли что-то подобное в Underscore.js? Я пропустил что-то ужасно очевидное?