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

264
Vistas
Tratando de agregar más casos, no funciona según lo previsto

Mi objetivo es hacer un pequeño programa que entienda las palabras humanas, y hasta ahora me está yendo muy bien gracias a un poco de ayuda.

Decidí comenzar con matemáticas simples antes de hacer otras cosas, pero algo anda mal.

Hasta ahora, el lector humano puede hacer sumas, pero quiero que haga más operaciones como restas, multiplicaciones, divisiones, etc. Tengo esta parte del código que maneja los casos, básicamente si le dices que 'suma...' debería agrega, entiendes la idea, y se ve así:

 switch (operator) { case "add": return numbers.reduce((a, b) => Number(a) + Number(b));

Genial, así que pensé que debería hacer otro caso y simplemente "restar" y simplemente hacer Número (a) - Número (b), ¿verdad?

Bueno, ahí es donde va el flop, si le digo que reste 2 de 5, me da una respuesta que se ve así:

 undefined

Cuando lo que quiero que diga es:

 -3

¿Cómo puedo solucionar este problema? Código fuente completo:

 function output(func) { console.log(func) } function read(str) { const dl = str.split(' '); const operator = dl.shift(x => x.includes("add", "sub", "mul", "div")) const numbers = dl.filter(x => Number(x)) switch (operator) { case "add": return numbers.reduce((a, b) => Number(a) + Number(b)); case "subtract": return numbers.reduce((a, b) => Number(a) - Number(b)); } } const result = read( "add 6 and 4" ) output(result)
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Parece que funciona bien.

 function output(func) { console.log(func) } function read(str) { const dl = str.split(' '); const operator = dl.shift(x => x.includes("add", "sub", "mul", "div")) const numbers = dl.filter(x => Number(x)) switch (operator) { case "add": return numbers.reduce((a, b) => Number(a) + Number(b)); case "subtract": return numbers.reduce((a, b) => Number(a) - Number(b)); } } output(read( "add 6 and 4" )) output(read( "subtract 6 and 4" )) output(read( "subtract 2 and 5" )) output(read( "sub 2 and 5" ))

about 4 years ago · Santiago Gelvez 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