Используя 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? Я пропустил что-то ужасно очевидное?