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

235
Visualizações
¿Por qué el mensaje se muestra correctamente en la consola, pero la devolución no funciona?

Estoy en un desafío de Codewars, llamado 'zombie onslaught'.

La tarea es: dados tres argumentos (n° de zombis, posición/distancia inicial de los zombis, n° de munición) tengo que devolver un mensaje basado en algunas condiciones.

Si todos los zombis están muertos, debería devolver: ' You killed all ${x} zombies '

Si todavía hay zombis pero te quedas sin munición, debería responder: ' You shot ${x} zombies before being eaten: ran out of ammo. '

si tengo munición pero la distancia es 0 debería devolver ' You shot ${x} zombies before being eaten: overwhelmed. '

Al final, si me he quedado sin munición y la distancia también es 0, debería devolver ' You shot ${x} zombies before being eaten: overwhelmed. '

Ahora el problema es que el mensaje se muestra correctamente en console.log() , pero necesito devolverlo, y el retorno es solo un mensaje undefined

Aquí está el código, es una función corta, así que lo publico todo aquí.

 function zombie_shootout(zombies, range, ammo) { let currentZombies = zombies let currentRange = range let currentAmmo = ammo let killedZombies = 0 let message = '' setInterval(() => { currentZombies -= 1 currentRange -= 0.5 currentAmmo -= 1 if (currentZombies === 0) { message = `You shot all ${currentZombies} zombies` } else if (currentZombies > 0 && currentAmmo === 0) { killedZombies = zombies - currentZombies message = `You shot ${killedZombies} zombies before being eaten: ran out of ammo.` } else if (currentAmmo > 0 && currentRange === 0) { killedZombies = zombies - currentZombies message = `You shot ${killedZombies} zombies before being eaten: overwhelmed.` } else if (currentAmmo === 0 && currentRange === 0) { killedZombies = zombies - currentZombies message = `You shot ${killedZombies} zombies before being eaten: overwhelmed.` } }, 1000) return message }

La variable de mensaje que se devuelve al final siempre devuelve undefined

¿Me podrían ayudar chicos? Porque en la consola los resultados son correctos, por lo que todo parece funcionar bien.

Aquí hay algunos casos de prueba

 zombie_shootout(3, 10, 10) // => "You shot all 3 zombies." zombie_shootout(100, 8, 200) // => "You shot 16 zombies before being eaten: overwhelmed." zombie_shootout(50, 10, 8) // => "You shot 8 zombies before being eaten: ran out of ammo."
about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

setInterval lleva tiempo y javascript es Synchronous de forma predeterminada, javaScript no espera a que se ejecute setInterval. puedes usar async/await o promises

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