Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

268
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda