El código con el que estoy practicando es donde tengo una función llamada InReverse. Esta función acepta una función como argumento y devuelve una función. Cuando se invoca la función devuelta, invierte el orden de los argumentos.
Cuando se devuelven las funciones devueltas:
const gatoPerro = ('gato', 'perro') => devuelve ('perro gato')
Lo que he reescrito hasta ahora es:
function inReverse (func) { return function (...arguments) { return arguments.map((element) => { element.reverse(); }); }}
Cualquier orientación sería apreciada!
Simplemente debe llamar a la función de entrada dentro de la función anónima recién creada.
Por ejemplo esto funciona:
function inReverse(f) { return function () { let args = [...arguments].reverse(); return f.apply(this, args); } } Entonces, por ejemplo, si tiene una función de subtract como esta:
function subtract(a, b) { return ab; } subtract(1, 10); será -9 como se esperaba.
y inReverse(subtract)(1, 10) será 9 como se esperaba.
No estoy seguro de por qué está usando map , simplemente llame a reverse directamente en la matriz de arguments . Además, no estabas llamando a func :
function inReverse(func) { return function(...args) { return func(...args.reverse()); }; } (Tenga en cuenta que arguments es un identificador reservado en modo estricto, debe nombrar su parámetro para otra cosa)
Simplemente invierta los argumentos y use func.apply(this, arr)
function inReverse(func) { return function() { var args = Array.prototype.slice.call(arguments) args = args.reverse(); return func.apply(this, args); } } function div(a, b) { return a / b } console.log(div(1, 2)) console.log(inReverse(div)(1, 2))