Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

269
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!