Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

[Duda] Desafio 3 Cual es la mejor forma?

En el desafío 3 se trabaja con arreglos y se podrían aplicar varias soluciones usando bucles como while o for pero también existe el metodo forEach, pero mi pregunta es si es mejor trabajar con .forEach o es mejor trabajarlo con un for o es mejor con un while, debajo solo incluyo como los solucione con .forEach y con for

//Crea una función que muestre en la consola el número más grande y el número más pequeño en una lista.
function mostrarMayorA(listaNumeros) {
    let numeroMayor = listaNumeros[0];
    let numeroMenor = listaNumeros[0];
    for (let indice = 0; indice < listaNumeros.length; indice++) {
        if (numeroMayor < listaNumeros[indice]) {
            numeroMayor=listaNumeros[indice];
        }
        if (numeroMenor > listaNumeros[indice]) {
            numeroMenor = listaNumeros[indice];
        }
    }
    console.log(numeroMayor);
    console.log(numeroMenor);
}

function mostrarMayorB(listaNumeros) {
    let numeroMayor = listaNumeros[0];
    let numeroMenor = listaNumeros[0];
    listaNumeros.forEach((valor) => {
        if (numeroMayor < valor) {
            numeroMayor = valor;
        }
        if (numeroMenor > valor) {
            numeroMenor = valor;
        }
    });
    console.log(numeroMayor)
    console.log(numeroMenor);
}

let numerosGrupo2 = [5,12,4,-19,7,9,6,-16];

mostrarMayorA(numerosGrupo2);
mostrarMayorB(numerosGrupo2);
4 respuestas

Como practica me parece excelente ejercicio pero para hacerlo de manera un pco mas eficiente sin tanto código en este caso te diria que lo hagas con las funciones Math.

let listaDeNumeros = [1, 7, 9, 6]


numeroMayorMenor();

function numeroMayorMenor(){
//Aqui vamos a utilizar el SpreadOperator para separar los datos dentro de la funcion math.
let maxArreglo = Math.max(...listaDeNumeros);
let minArreglo = Math.min(...listaDeNumeros);
console.log(`El numero maximo es: ${maxArreglo} El numero minimo es: ${minArreglo}`);
}

Como ves basicamente aprovechamos que en JS ya tiene un función para buscar el dato mínimo o máximo usando Math, lo unico nuevo o diferente es que normalmente al pasar un array-arreglo por esta función esta no la reconoce porque digamos que esta empaquetado, y necesita los datos normal, entonces solo le agregamos (...) esos 3 puntos, a esto se le llama spread operator que por lo que entendí descompone individualmente los datos, dentro de la función. para poder evaluarlos.

Saludos :)

Gracias, aprecio mucho la sugerencia de usar esa función de Math, no la conocía, sin embargo la principal duda que tengo es que para recorrer un arreglo es mejor usar una estructura de bucle(for, while) o usar .forEach(), elegí el ejerció al azar a modo de ejemplo

solución!

Hola estimado Angel,

La elección entre utilizar un bucle tradicional (for o while) o el método .forEach() depende del contexto y de los requisitos específicos de tu código. Ambos enfoques tienen sus ventajas y desventajas, y la decisión puede basarse en preferencias personales o en la legibilidad del código en un contexto particular. Aquí hay algunas consideraciones para cada enfoque:

# Bucle Tradicional (for o while):

1.-Ventajas:

1.1.-Mayor Control:

Los bucles tradicionales ofrecen más control sobre el índice y el flujo del bucle. Esto puede ser útil en situaciones específicas.

1.2.-Compatibilidad:

Algunas funciones, como break y continue, son más fáciles de implementar en bucles tradicionales.

2.-Desventajas:

2.1.-Sintaxis Más Verbose:

La sintaxis de los bucles tradicionales puede ser más extensa y menos expresiva en comparación con .forEach().

2.2.-Más Propenso a Errores:

Existe la posibilidad de errores comunes como "fuera de índice" o errores relacionados con el manejo incorrecto de índices.

Método .forEach():

1.-Ventajas:

1.1.-Legibilidad:

.forEach() tiende a hacer el código más legible y conciso, ya que elimina la necesidad de administrar manualmente el índice y proporciona una forma más declarativa de expresar la lógica del bucle.

1.2.-Menos Propenso a Errores:

Al no tener que administrar manualmente el índice, se reduce la posibilidad de errores relacionados con índices.

1.3.-Funciones de Flecha:

Puedes utilizar funciones de flecha (=>), lo que puede hacer que el código sea más limpio y fácil de entender.

2.-Desventajas:

2.1.-Menos Control:

.forEach() puede ser menos adecuado en situaciones donde se requiere un mayor control sobre el flujo del bucle o se necesitan operaciones más avanzadas.

2.2.-No es Fácil de Romper:

No puedes usar break para salir prematuramente del bucle .forEach().

En resumen, si necesitas un mayor control sobre el índice o deseas utilizar funciones como break o continue, un bucle tradicional podría ser más apropiado. Si priorizas la legibilidad y la concisión, y no necesitas un control detallado sobre el índice, .forEach() es una opción válida.

Ambos enfoques son comunes y aceptados en el desarrollo de JavaScript. La elección depende del contexto y de tus preferencias personales.

Espero que te sirva esta informarción .

saludos.

Muchas gracias Diego, fue de mucha ayuda esa información.