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

79
Vistas
¿Cómo puedo obtener resultados de una matriz dada con las siguientes condiciones?

Soy un principiante en JavaScript y estoy haciendo una prueba en línea para mejorar mis habilidades. Me encontré con esta pregunta:

  1. Agregue 1 punto por cada número par en la matriz
  2. Sume 3 puntos por cada número impar en la matriz
  3. Sume 5 puntos cada vez que aparezca el número 5 en la matriz

Entonces, si me dan esta matriz como ejemplo: ([1,2,3,4,5]) la salida debería ser 13

Esto es lo que tengo hasta ahora:

 export function find_total( my_numbers ) { for(let i = 0; i < my_numbers.length; i++){ if(my_numbers[i] % 2 === 0) { total = total + 1 } if(my_numbers[i] % 2 === 1) { total = total + 3 } if(my_numbers[i] === 5) { total = total + 5 } return total } console.log(total) }

Pero me está dando errores. Obtuve la lógica en inglés pero no pude ponerla en JS. ¿Cuál sería la sintaxis correcta aquí?

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

0

El problema está en tus sentencias if.

 function find_total( my_numbers ) { let total = 0; for(let i = 0; i < my_numbers.length; i++){ if(my_numbers[i] === 5) { total = total + 5 } else if(my_numbers[i] % 2 === 0) { total = total + 1 } else if(my_numbers[i] % 2 === 1) { total = total + 3 } } return total; } console.log(find_total([1,2,3,4,5]))

Este código debería imprimir el resultado correcto de 13. No obtuvo una respuesta de 13 porque 5 es impar, por lo que tiene 3 puntos y 5 puntos exclusivos de 5. La clave es no tratar a 5 como si tuviera un punto de número impar, sino que tiene su propio punto independientemente de que sea par o impar.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay los siguientes problemas en su código:

  1. total en la función find_total nunca se inicializa
  2. declaración de return está fuera de lugar dentro del ciclo for , debe estar fuera, lo que significa el valor de retorno de la función find_total
  3. Es mejor console.log . registrar el valor de la función, en lugar de registrarlo dentro. p.ej. console.log(find_total(...))

Al corregir esto, obtendrá el valor de retorno como 16 para la entrada [1, 2, 3, 4, 5] como se indica en los comentarios.

 function find_total(my_numbers) { let total = 0 // Initialize total with a value of 0 for (let i = 0; i < my_numbers.length; i++) { if (my_numbers[i] % 2 === 0) { total = total + 1 } if (my_numbers[i] % 2 === 1) { total = total + 3 } if (my_numbers[i] === 5) { total = total + 5 } } return total // return outside the loop } console.log(find_total([1, 2, 3, 4, 5])) // console.log outside

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