Básicamente, quiero compartir la manera en que hice los ejercicios. En estos ejercicios suelo agregar complejidad al problema solicitado para agudizar más el aprendizaje de cosas nuevas. En este caso hice que las listas que se solicitan se generaran de manera aleatoria (tanto su longitud como cada uno de sus items), brindé soluciones medianamente modulares, busqué tener un código optimizado en general y utilicé un par de métodos que no hemos visto en clase como el .some() y el .toFixed() que investigué para conseguir los resultados que buscaba en ese momento, y que claramente están explicados dentro de mi código, por si les quieres echar un ojo:
PD: Si quieres ver las notas cómodamente, te recomiendo pegar el código en tu VS Code y presionar Alt+Z. Ahí verás las notas en un formato más legible y puedes volver a oprimir la combinación de teclas para volver al formato anterior.
PD2: Es muy largo el código, figuró partirlo en 2 jaja
let listaNumeros = []; //Aquí simplemente estoy creando 2 arrays, generando un número aleatorio
let listaNumeros2 = []; //y asignando ese número aleatorio a la longitud de ambas listas
let longitudListas = parseInt(Math.random()*20 + 1);
listaNumeros.length = longitudListas;
listaNumeros2.length = longitudListas;
function rellenarListas(lista) { //En esta función estoy generando un número aleatorio para cada posición de la lista. Con el bucle While indico que si el número generado ya está dentro de la lista, genere uno nuevamente hasta que el número conseguido no se encuentre en la lista. Esto me evita problemas con la función de revisarPosicion()
for (let i = 0; i < lista.length; i++) {
numeroGenerado = Math.floor(Math.random()*35 + 1);
while (lista.includes(numeroGenerado)) {
numeroGenerado = Math.floor(Math.random()*35 + 1);
}
lista[i] = numeroGenerado;
}
}
function sumaTotal(lista) { //En esta función simplemente declaro una variable para ir almacenando la suma del recorrido que voy haciendo por la lista en cada item. Luego con el bucle for estoy sumando lo que hay en dicha variable con el item que hay en el índice correspondiente. Todo hasta llegar al límite de la lista.
let totalSuma = 0;
for (let i = 0; i < lista.length; i++) {
totalSuma += lista[i];
}
return totalSuma;
}
function promedioNumerosLista(lista) { //En esta utilizo el resultado de la función sumaTotal() y divido este valor por el total de items (en este caso números), de la lista. El toFixed(2) es para que me muestre únicamente 2 decimales en el restultado.
return (sumaTotal(lista) / lista.length).toFixed(2);
}
function numerosExtremo(lista) { //En esta función simplemente declaro 2 variables, la del numeroMayor se inicia en 0 y el numeroMenor en 35 básicamente para evitar problemas. Luego se irán ajustando a sus valores reales cuando se analice la lista. En el bucle for va a ver cada item y a compararlos con el valor de ambas variables. Si se cumple la condición dada, el valor se va a ver reemplazado. Al final se consiguen los valores mayores y menores de la lista respectivamente
let numeroMayor = 0;
let numeroMenor = 35;
for (let i = 0; i < lista.length; i++) {
if (numeroMayor < lista[i]) {
numeroMayor = lista[i];
}
if (numeroMenor > lista[i]) {
numeroMenor = lista[i];
}
}
return `El número mayor de la lista es ${numeroMayor} y el número menor es ${numeroMenor}`;
}