Soy un principiante en JavaScript y estoy haciendo una prueba en línea para mejorar mis habilidades. Me encontré con esta pregunta:
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í?
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.
Hay los siguientes problemas en su código:
total en la función find_total nunca se inicializareturn está fuera de lugar dentro del ciclo for , debe estar fuera, lo que significa el valor de retorno de la función find_totalconsole.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