Usando Underscore.js, puedo escribir lo siguiente que devuelve 42
:Underscore.js: la forma de las funciones habituales de la cadena
_([42, 43]).chain()
.first()
.value()
He función personalizada, que no forma parte de la llamada Underscore.js double()
:
function double(value) { return value * 2; };
me gustaría ser capaz de llamar a esta función en una cadena de subrayado, como si fuera parte de un guión bajo. Me gustaría escribir lo siguiente, que me gustaría volver 84
:
_([42, 43]).chain()
.first()
.double()
.value()
Esto no puede trabajar desde subrayado no define double()
. Podría usar tap()
como en:
_([42, 43]).chain()
.first()
.tap(double)
.value()
Esto es válido, pero tap
se aplica la función a su argumento y devuelve el argumento, no el resultado de la función. Por lo tanto, me parece que necesitaría una especie de tap
que devuelve el resultado de la función aplicada a su argumento. ¿Hay algo como esto en Underscore.js? ¿Me estoy perdiendo algo terriblemente obvio?
Tenga en cuenta que 'double' es una [* futura palabra reservada *] (http://bclary.com/2004/11/07/#a-7.5.3) y las implementaciones pueden arrojar un' SyntaxError' si se usa como una Identificador – CMS
Alessandro, ¿has descubierto que te di la única respuesta correcta a esta pregunta? Lo que expuse no contamina en absoluto el espacio de nombres de subrayado. La biblioteca underscore.js anticipó lo que solicitó y creó una función para eso exactamente. –
Subrayar ahora tiene tanto 'tap' (ejecuta una función para modificar cada elemento) como' map' (ejecuta una función que devuelve un nuevo elemento). – CMircea