const replaceUnderscoreWithSpace = (value) => value.replace(/_/g, ' ') const capitalize = (value) => value .split(' ') .map((val) => val.charAt(0).toUpperCase() + val.slice(1)) .join(' '); const appendGreeting = (value) => `Hello, ${value}!` const pipe = (value, ...funcs) => value => funcs.reduce((value, f) => f(value), value)Estoy tratando de implementar la función de tubería, pero no puedo entender cómo hacer que funcione, por lo que toma el parámetro "valor" como argumento.
Ejemplo
const result = pipe( "john_doe", replaceUnderscoreWithSpace, capitalize, appendGreeting, ); alert(result); // Hello, John Doe!Tiene una función anidada adicional en su implementación de pipe() . Por lo tanto pipe() devuelve una función que llama a reduce() en lugar de llamar a reduce() en sí.
Deshazte del value => .
const replaceUnderscoreWithSpace = (value) => value.replace(/_/g, ' ') const capitalize = (value) => value .split(' ') .map((val) => val.charAt(0).toUpperCase() + val.slice(1)) .join(' '); const appendGreeting = (value) => `Hello, ${value}!` const pipe = (value, ...funcs) => funcs.reduce((value, f) => f(value), value); const result = pipe( "john_doe", replaceUnderscoreWithSpace, capitalize, appendGreeting, ); console.log(result); // Hello, John Doe!