Necesito iterar entre 2 números y para cada número necesito especificar si es par o impar
Logré iterar entre 2 números, pero no puedo averiguar cómo sumar si son pares o impares. He probado tantas opciones diferentes y todavía estoy atascado.
const goThroughNumbers = (start:number, end:number)=>{ var num = [] for(var i = start; i <= end; i++){ num.push(i++) } { if(i % 2 ===0 ){ console.log(`${i} - Even`) } else{ console.log(`${i} - Odd`) } } } console.log(goThroughNumbers(3, 7));Rendimiento esperado:
> 3 - odd > 4 - even > 5 - odd > 6 - even > 7 - oddHay algunos errores de sintaxis en su código: elimine el { ... } extraño que envuelve su bloque if/else. Además, desea realizar el registro de la consola dentro del ciclo for para lograr el resultado deseado. No es necesario almacenar los números en una matriz num , ya que no la necesita.
const goThroughNumbers = (start, end) => { for (let i = start; i <= end; i++) { if (i % 2 === 0) { console.log(`${i} - Even`) } else { console.log(`${i} - Odd`) } } } goThroughNumbers(3, 7);Incluso puede condensar aún más la lógica para usar operadores ternarios en su console.log:
const goThroughNumbers = (start, end) => { for (let i = start; i <= end; i++) { console.log(`${i} - ${i % 2 ? 'Even' : 'Odd'}`); } } goThroughNumbers(3, 7);evenOdd la lógica evenOdd y devolvería un valor:
const evenOdd = (n) => n % 2 ? 'odd' : 'even' function goThroughNumbers(start, end) { let ret = [] for (let i = start; i <= end; i++) { ret = [...ret, evenOdd(i)] } return ret } const result = goThroughNumbers(3, 7) console.log(result)Creo que dividir las funciones en partes más pequeñas es más flexible que registrar directamente los valores.