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

119
Vistas
Buscando una implementación de función limpia de una declaración de cambio en JavaScript

Estoy enseñando un curso que incluye la explicación de JavaScript funcional y quiero tener un muy buen ejemplo de programación funcional que, con suerte, sea más limpio que no funcional. Quiero convertir la siguiente declaración de cambio en funcional. Yo mismo hice un ejemplo de esa conversión, pero espero que haya una solución más simple.

Aquí está la versión de declaración de cambio:

 let animalType = "Poodle"; switch (animalType) { case "Poodle": case "Beagle": case "Bulldog": console.log(animalType + " is a dog."); break; case "Bengal": case "Siamese": console.log(animalType + " is a cat."); break; default: console.log(animalType + " is not a dog or cat."); break; }

Y esto es lo que se me ocurrió como funcional que no me hace feliz

 const result = getAnimalType("Poodle"); console.log("result:" + result) function getAnimalType(animal) { function isDog(animal) { const dogs = ["Poodle", "Beagle", "Bulldog"]; return dogs.includes(animal) } function isCat(animal) { const cats = ["Bengal", "Siamese"]; return cats.includes(animal) } return isDog(animal) ? animal + " is a dog." : isCat(animal) ? animal + " is a cat." : animal + " is not a dog or cat."; }

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede usar un objeto para asignar tipos de animales a funciones.

 function dog(animalType) { return animalType + " is a dog."; } function cat(animalType) { return animalType + " is a cat."; } function other(animalType) { return animalType + " is not a dog or cat."; } const typeMap = { Poodle: dog, Beagle: dog, Bulldog: dog, Bengal: cat, Siamese: cat }; function getAnimalType(animalType) { let typeFun = typeMap[animalType] || other; return typeFun(animalType); } console.log(getAnimalType("Poodle"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una opción es un objeto indexado por perro o gato, cuyos valores son matrices de tipos de animales. Esto es fácilmente extensible a tipos de animales adicionales.

 const animalNamesByType = { dog: ["Poodle", "Beagle", "Bulldog"], cat: ["Bengal", "Siamese"] }; function getAnimalType(animal) { const entry = Object.entries(animalNamesByType).find( entry => entry[1].includes(animal) ); return entry ? `${animal} is a ${entry[0]}` : `${animal} is not in animalNamesByType`; } console.log(getAnimalType("Poodle"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede crear una función de 3 líneas realmente simple para esto

 const dogs = ["Poodle", "Beagle", "Bulldog"]; const cats = ["Bengal", "Siamese"]; const getAnimalType = (animal) => { if(dogs.includes(animal)) return `${animal} is a dog` if(cats.includes(animal)) return `${animal} is a cat` return `${animal} is not a dog or cat.` } const result = getAnimalType("Poodle"); console.log("result:" + result)
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