Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

116
Vistas
No entender la segunda declaración de retorno en esta función

Estoy aprendiendo javascript y mientras estaba en Codewars no pude resolver este problema, así que busqué una solución.

Esta es la solución que encontré y simplemente no entiendo por qué debe haber una segunda declaración de devolución dentro del método del mapa. Si alguien pudiera darme alguna idea sería muy apreciado. Gracias.

 let spinWords = (str) => { return str.split(' ').map(function(string) { return (string.length > 4) ? string.split('').reverse().join('') : string }).join(' '); }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La función .map acepta una devolución de llamada, y esa devolución de llamada es una función que se ejecuta para cada elemento de la matriz. Para un ejemplo simple:

 const upperCase = str => str.toUpperCase(); console.log( ['a', 'b'].map(upperCase) );

Arriba, se llama con ambos elementos de la matriz: upperCase('a') y upperCase('b') , y los resultados se colocan en la nueva matriz, que luego se registra en console.log .

También puede definir funciones en línea y pasar eso a .map :

 console.log( ['a', 'b'].map(str => str.toUpperCase()) );

Tu código es original

 str.split(' ').map(function(string) { return (string.length > 4) ? string.split('').reverse().join('') : string }).join(' ');

está haciendo el mismo tipo de cosas, excepto que

  • el cuerpo de la función es más complicado, y
  • está usando la palabra clave de function , en lugar de una función de flecha, y por lo tanto necesita la palabra clave de return para devolver valores ( a diferencia de las funciones de flecha en algunas circunstancias ).
about 4 years ago · Juan Pablo Isaza Denunciar

0

El segundo retorno es una función de devolución de llamada. Prueba a verlo así:

 function reverseWord(string) { return (string.length > 4) ? string.split('').reverse().join('') : string } let spinWords = (str) => { return str.split(' ').map(reverseWord).join(' '); }

Así que reverseWord es su función de devolución de llamada, con su propio retorno. El valor que devuelve es el valor utilizado en la matriz asignada.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda