007. Ejercicios de lógica de programación en Javascript

En este capítulo abordaremos el tema de los arrays, para ello vamos a resolver los siguientes ejercicios, creando funciones que los resuelvan. Los ejercicios son:

1. Números elevados al cuadrado

Creamos una función que, dado un array numérico, devuelva otro array con los números elevados al cuadrado. Para este ejercicio vamos a utilizar lo que  se denomina map, que permite generar un nuevo array a partir del original, y a este nuevo array hacerle las modificaciones que necesitemos. El método map se utiliza mucho en librerías reactivas o frameworks como React, Vue…

      const devolverCuadrados = (arr = undefined) => {
        if (!arr) return console.log("No ingresaste un array de números");

        if (!(arr instanceof Array))
          return console.log("El valor que ingresaste no es un array");

        if (arr.length === 0) return console.log("El array está vacío");

        for (let num of arr) {
          if (typeof num !== "number")
            return console.log(`El valor "${num}" no es un número`);
        }

        const newArr = arr.map((el) => el * el);

        return console.log(
          `Array original: ${arr} \n Array elevado al cuadrado: ${newArr}`
        );
      };

      devolverCuadrados();
      devolverCuadrados([2, "3"]);
      devolverCuadrados([2, 3]);

2. Número más alto

Proponemos una función que, dado un array, devuelva el número más alto y el más bajo de dicho array. Para este ejercicio vamos a ver dos métodos importantes del objeto Math que nos van a permitir resolver este ejercicio. Se trata de los métodos min() y max(). Junto con los métodos min() max() le pasaremos el parámetro en forma de spread operator.

      const arrayMinMax = (arr = undefined) => {
        if (!arr) return console.log("No ingresaste un array de números");

        if (!(arr instanceof Array))
          return console.log("El valor que ingresaste no es un array");

        if (arr.length === 0) return console.log("El array está vacío");

        for (let num of arr) {
          if (typeof num !== "number")
            return console.log(`El valor "${num}" no es un número`);
        }

        return console.info(
          `Array original: ${arr}\nValor mayor: ${Math.max(
            ...arr
          )}\nValor menor: ${Math.min(...arr)}`
        );
      };

      arrayMinMax([2, 3, 5, 7]);

3. Números pares e impares

En este último ejercicio, creamos una función que, dado un array, devuelva otros dos arrays, uno con los números pares, y el segundo con los impares. Para este último ejercicio vamos a utilizar el método filter(), que como su nombre dice, recibe un array, y en base a una condición que le pongamos, va a filtrar cada uno de los elementos y de ahí sacaremos nuestra respuesta.

      const parImpar = (arr = undefined) => {
        if (!arr) return console.log("No ingresaste un array de números");

        if (!(arr instanceof Array))
          return console.log("El valor que ingresaste no es un array");

        if (arr.length === 0) return console.log("El array está vacío");

        for (let num of arr) {
          if (typeof num !== "number")
            return console.log(`El valor "${num}" no es un número`);
        }

        return console.log({
          pares: arr.filter((num) => num % 2 === 0),
          impares: arr.filter((num) => num % 2 === 1),
        });
      };

      parImpar([0, 2, 5, 9, 4]);
Scroll al inicio