Estoy tratando de responder a esta pregunta: "Use for loop para iterar de 0 a 100 e imprimir la suma de todos los pares y la suma de todas las probabilidades".
y mi código es:
numbersE = [] numbersO = [] let sumE = 0 let sumO = 0 for (i=0;i<=100;i++) { if(i % 2 == 0){ numbersE.push(i) } else { numbersO.push(i) } sumE += numbersE[i] sumO += numbersO[i] } console.log(sumE, sumO) Nan Nandonde esta mi error
let sumE = 0 let sumO = 0 // You could technically start at 1 here for (let i = 0; i <= 100; i++) { // Just add the numbers without using arrays if (i % 2 == 0) { sumE += i } else { sumO += i } } console.log(sumE, sumO)Comencemos con el bucle. En i=0, si se activa la instrucción y se envía 0 a la matriz númerosE y, por lo tanto, sumaE = 0. Pero la matriz númerosO está vacía porque el ciclo for no envió ningún valor a númerosO. Por lo tanto, en i=0, sumO devuelve NaN .
De manera similar, cuando i> 0, está intentando acceder al índice de matrices números E, números O que no existe. Por ejemplo, en i=10, 10%2 es igual a 0, por lo tanto, 10 se coloca en la matriz de númerosE. Y su código agrega un elemento de la matriz numbersE con índice 10 a la variable sumE y lo almacena en sumE. Pero el problema aquí es que la matriz númerosE no tiene un elemento en el índice 10. Por lo tanto, devuelve NaN .
Esto puede ser resuelto por:
let i; let sumE = 0; let sumO = 0; for (i = 0; i <= 100; i++) { i % 2 === 0 ? (sumE += i) : (sumO += 1); } console.log(sumE, sumO);let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]; let even = 0; let odd = 0; for(let i = 0; i < arr.length; i++) { if(i % 2 === 0) { even += arr[i]; } else { odd += arr[i]; } } console.log([even, odd]);