1
respuesta

mensajes muy parecidos

Ya que los mensajes presentados en el IMC son tam parecidos exist alguna manera de mostrar en una especie de lista? es decir, en ves de pasar calcularImc(90,1.65,"Jeisson") calcularImc(72,1.70,"Esteban") que son dos lineas en caso que fuuesen 100 personas, ¿como se hace para pasar las 100 de manera optima?

1 respuesta

¡Hola! Jeisson ¿cómo estás?

Una solución a lo que planteas requiere un código más estructurado con temas que de momento no se han abordado en el curso, me refiero a emplear objetos y arreglos.

A continuación, te planteo una solución:

Puedes crear una lista de personas almacenando la información en un array (arreglo).

 //arreglo vacío
let personas = [];

Cada persona la construyes como un objeto que va a tener mínimamente las propiedades de nombre, peso y altura:

 //Ejemplo de un objeto persona
    {
        nombre:'Juan',
        peso: 81,
        altura: 1.76
    }

Cada objeto persona que creas lo vas almacenando dentro del arreglo personas. Finalmente creas un ciclo for que va a iterar la función calcularImc tantas veces como objetos esten almacenados en tu arreglo.

Te dejo un ejemplo con un arreglo de 10 objetos personas diferentes, y las funciones necesarias para que puedas comprobar la solución. Recuerda copiar el código dentro de una etiqueta script dentro de un documento html.

function saltarLinea(cantidadDeSaltos) {

    for(let saltos = 1; saltos <= cantidadDeSaltos; saltos++){

        document.write("<br>");

    }

}

function imprimir(frase){

    document.write(frase);
    saltarLinea(1);

}

function calcularImc(peso,altura,nombre){

    let imc = peso / (altura * altura);
    imprimir("El IMC calculado de "+nombre+" es "+imc.toFixed(2));

}

// Listado de personas
// Cada vez que registras una pesona nueva vas incrementando tu lista
let personas = [
    {
        nombre:'Juan',
        peso: 81,
        altura: 1.76
    },
    {
        nombre:'Camila',
        peso: 45,
        altura: 1.59
    },
    {
        nombre:'Sandra',
        peso: 60,
        altura: 1.65
    },
    {
        nombre:'Marcos',
        peso: 72,
        altura: 1.70
    },
    {
        nombre:'Sara',
        peso: 56,
        altura: 1.68
    },
    {
        nombre:'Pablo',
        peso: 86,
        altura: 1.75
    },
    {
        nombre:'Fer',
        peso: 50,
        altura: 1.61
    },
    {
        nombre:'Guillermo',
        peso: 65,
        altura: 1.70
    },
    {
        nombre:'Maria',
        peso: 70,
        altura: 1.68
    },
    {
        nombre:'Patricia',
        peso: 55,
        altura: 1.63
    },

];

for(let i=0; i<personas.length;i++){

    calcularImc(personas[i].peso, personas[i].altura, personas[i].nombre);

}

Deberías ver en tu navegador lo siguiente:

//El IMC calculado de Juan es 26.15
// El IMC calculado de Camila es 17.80
// El IMC calculado de Sandra es 22.04
// El IMC calculado de Marcos es 24.91
// El IMC calculado de Sara es 19.84
// El IMC calculado de Pablo es 28.08
// El IMC calculado de Fer es 19.29
// El IMC calculado de Guillermo es 22.49
// El IMC calculado de Maria es 24.80
// El IMC calculado de Patricia es 20.70